All classes:
- gunicorn.errors.HaltServer
- gunicorn.errors.ConfigError
- gunicorn.errors.AppImportError
- gunicorn.glogging.SafeAtoms
- gunicorn.glogging.Logger
- gunicorn.pidfile.Pidfile
- gunicorn.sock.BaseSocket
- gunicorn.sock.TCPSocket
- gunicorn.sock.TCP6Socket
- gunicorn.sock.UnixSocket
- gunicorn.reloader.ReloaderBase
- gunicorn.reloader.Reloader
- gunicorn.reloader.InotifyReloader
- gunicorn.config.Config
- gunicorn.config.SettingMeta
- gunicorn.config.Setting
- gunicorn.config.ConfigFile
- gunicorn.config.WSGIApp
- gunicorn.config.Bind
- gunicorn.config.Backlog
- gunicorn.config.Workers
- gunicorn.config.WorkerClass
- gunicorn.config.WorkerThreads
- gunicorn.config.WorkerConnections
- gunicorn.config.MaxRequests
- gunicorn.config.MaxRequestsJitter
- gunicorn.config.Timeout
- gunicorn.config.GracefulTimeout
- gunicorn.config.Keepalive
- gunicorn.config.LimitRequestLine
- gunicorn.config.LimitRequestFields
- gunicorn.config.LimitRequestFieldSize
- gunicorn.config.Reload
- gunicorn.config.ReloadEngine
- gunicorn.config.ReloadExtraFiles
- gunicorn.config.Spew
- gunicorn.config.ConfigCheck
- gunicorn.config.PrintConfig
- gunicorn.config.PreloadApp
- gunicorn.config.Sendfile
- gunicorn.config.ReusePort
- gunicorn.config.Chdir
- gunicorn.config.Daemon
- gunicorn.config.Env
- gunicorn.config.Pidfile
- gunicorn.config.WorkerTmpDir
- gunicorn.config.User
- gunicorn.config.Group
- gunicorn.config.Umask
- gunicorn.config.Initgroups
- gunicorn.config.TmpUploadDir
- gunicorn.config.SecureSchemeHeader
- gunicorn.config.ForwardedAllowIPS
- gunicorn.config.AccessLog
- gunicorn.config.DisableRedirectAccessToSyslog
- gunicorn.config.AccessLogFormat
- gunicorn.config.ErrorLog
- gunicorn.config.Loglevel
- gunicorn.config.CaptureOutput
- gunicorn.config.LoggerClass
- gunicorn.config.LogConfig
- gunicorn.config.LogConfigDict
- gunicorn.config.LogConfigJson
- gunicorn.config.SyslogTo
- gunicorn.config.Syslog
- gunicorn.config.SyslogPrefix
- gunicorn.config.SyslogFacility
- gunicorn.config.EnableStdioInheritance
- gunicorn.config.StatsdHost
- gunicorn.config.DogstatsdTags
- gunicorn.config.StatsdPrefix
- gunicorn.config.BacklogMetric
- gunicorn.config.Procname
- gunicorn.config.DefaultProcName
- gunicorn.config.PythonPath
- gunicorn.config.Paste
- gunicorn.config.OnStarting
- gunicorn.config.OnReload
- gunicorn.config.WhenReady
- gunicorn.config.Prefork
- gunicorn.config.Postfork
- gunicorn.config.PostWorkerInit
- gunicorn.config.WorkerInt
- gunicorn.config.WorkerAbort
- gunicorn.config.PreExec
- gunicorn.config.PreRequest
- gunicorn.config.PostRequest
- gunicorn.config.ChildExit
- gunicorn.config.WorkerExit
- gunicorn.config.NumWorkersChanged
- gunicorn.config.OnExit
- gunicorn.config.NewSSLContext
- gunicorn.config.ProxyProtocol
- gunicorn.config.ProxyAllowFrom
- gunicorn.config.Protocol
- gunicorn.config.UWSGIAllowFrom
- gunicorn.config.KeyFile
- gunicorn.config.CertFile
- gunicorn.config.SSLVersion
- gunicorn.config.CertReqs
- gunicorn.config.CACerts
- gunicorn.config.SuppressRaggedEOFs
- gunicorn.config.DoHandshakeOnConnect
- gunicorn.config.Ciphers
- gunicorn.config.HTTPProtocols
- gunicorn.config.HTTP2MaxConcurrentStreams
- gunicorn.config.HTTP2InitialWindowSize
- gunicorn.config.HTTP2MaxFrameSize
- gunicorn.config.HTTP2MaxHeaderListSize
- gunicorn.config.PasteGlobalConf
- gunicorn.config.PermitObsoleteFolding
- gunicorn.config.StripHeaderSpaces
- gunicorn.config.PermitUnconventionalHTTPMethod
- gunicorn.config.PermitUnconventionalHTTPVersion
- gunicorn.config.CasefoldHTTPMethod
- gunicorn.config.ForwarderHeaders
- gunicorn.config.HeaderMap
- gunicorn.config.ASGILoop
- gunicorn.config.ASGILifespan
- gunicorn.config.ASGIDisconnectGracePeriod
- gunicorn.config.RootPath
- gunicorn.config.DirtyApps
- gunicorn.config.DirtyWorkers
- gunicorn.config.DirtyTimeout
- gunicorn.config.DirtyThreads
- gunicorn.config.DirtyGracefulTimeout
- gunicorn.config.OnDirtyStarting
- gunicorn.config.DirtyPostFork
- gunicorn.config.DirtyWorkerInit
- gunicorn.config.DirtyWorkerExit
- gunicorn.config.ControlSocket
- gunicorn.config.ControlSocketMode
- gunicorn.config.ControlSocketDisable
- gunicorn.http2.errors.HTTP2ErrorCode
- gunicorn.http2.errors.HTTP2Error
- gunicorn.http2.errors.HTTP2ProtocolError
- gunicorn.http2.errors.HTTP2InternalError
- gunicorn.http2.errors.HTTP2FlowControlError
- gunicorn.http2.errors.HTTP2SettingsTimeout
- gunicorn.http2.errors.HTTP2StreamClosed
- gunicorn.http2.errors.HTTP2FrameSizeError
- gunicorn.http2.errors.HTTP2RefusedStream
- gunicorn.http2.errors.HTTP2Cancel
- gunicorn.http2.errors.HTTP2CompressionError
- gunicorn.http2.errors.HTTP2ConnectError
- gunicorn.http2.errors.HTTP2EnhanceYourCalm
- gunicorn.http2.errors.HTTP2InadequateSecurity
- gunicorn.http2.errors.HTTP2RequiresHTTP11
- gunicorn.http2.errors.HTTP2StreamError
- gunicorn.http2.errors.HTTP2ConnectionError
- gunicorn.http2.errors.HTTP2ConfigurationError
- gunicorn.http2.errors.HTTP2NotAvailable
- gunicorn.http2.stream.StreamState
- gunicorn.http2.stream.HTTP2Stream
- gunicorn.http2.request.HTTP2Body
- gunicorn.http2.request.HTTP2Request
- gunicorn.http2.connection.HTTP2ServerConnection
- gunicorn.http2.async_connection.AsyncHTTP2Connection
- gunicorn.arbiter.Arbiter
- gunicorn.dirty.errors.DirtyError
- gunicorn.dirty.errors.DirtyTimeoutError
- gunicorn.dirty.errors.DirtyConnectionError
- gunicorn.dirty.errors.DirtyWorkerError
- gunicorn.dirty.errors.DirtyAppError
- gunicorn.dirty.errors.DirtyAppNotFoundError
- gunicorn.dirty.errors.DirtyNoWorkersAvailableError
- gunicorn.dirty.errors.DirtyProtocolError
- gunicorn.dirty.app.DirtyApp
- gunicorn.dirty.tlv.TLVEncoder
- gunicorn.dirty.protocol.BinaryProtocol
- gunicorn.dirty.client.DirtyClient
- gunicorn.dirty.client.DirtyStreamIterator
- gunicorn.dirty.client.DirtyAsyncStreamIterator
- gunicorn.dirty.stash.StashError
- gunicorn.dirty.stash.StashTableNotFoundError
- gunicorn.dirty.stash.StashKeyNotFoundError
- gunicorn.dirty.stash.StashClient
- gunicorn.dirty.stash.StashTable
- gunicorn.workers.workertmp.WorkerTmp
- gunicorn.dirty.worker.DirtyWorker
- gunicorn.dirty.arbiter.DirtyArbiter
- gunicorn.ctl.handlers.CommandHandlers
- gunicorn.ctl.protocol.ProtocolError
- gunicorn.ctl.protocol.ControlProtocol
- gunicorn.ctl.server.ControlSocketServer
- gunicorn.ctl.client.ControlClientError
- gunicorn.ctl.client.ControlClient
- gunicorn.debug.Spew
- gunicorn.app.base.BaseApplication
- gunicorn.app.base.Application
- gunicorn.app.wsgiapp.WSGIApplication
- gunicorn.app.pasterapp.serve.PasterServerApplication
- gunicorn.http.errors.ParseException
- gunicorn.http.errors.NoMoreData
- gunicorn.http.errors.ConfigurationProblem
- gunicorn.http.errors.InvalidRequestLine
- gunicorn.http.errors.InvalidRequestMethod
- gunicorn.http.errors.ExpectationFailed
- gunicorn.http.errors.InvalidHTTPVersion
- gunicorn.http.errors.InvalidHeader
- gunicorn.http.errors.ObsoleteFolding
- gunicorn.http.errors.InvalidHeaderName
- gunicorn.http.errors.UnsupportedTransferCoding
- gunicorn.http.errors.InvalidChunkSize
- gunicorn.http.errors.ChunkMissingTerminator
- gunicorn.http.errors.LimitRequestLine
- gunicorn.http.errors.LimitRequestHeaders
- gunicorn.http.errors.InvalidProxyLine
- gunicorn.http.errors.InvalidProxyHeader
- gunicorn.http.errors.ForbiddenProxyRequest
- gunicorn.http.errors.InvalidSchemeHeaders
- gunicorn.http.body.ChunkedReader
- gunicorn.http.body.LengthReader
- gunicorn.http.body.EOFReader
- gunicorn.http.body.Body
- gunicorn.http.message.PPCommand
- gunicorn.http.message.PPFamily
- gunicorn.http.message.PPProtocol
- gunicorn.http.message.Message
- gunicorn.http.message.Request
- gunicorn.http.unreader.Unreader
- gunicorn.http.unreader.SocketUnreader
- gunicorn.http.unreader.IterUnreader
- gunicorn.http.parser.Parser
- gunicorn.http.parser.RequestParser
- gunicorn.uwsgi.errors.UWSGIParseException
- gunicorn.uwsgi.errors.InvalidUWSGIHeader
- gunicorn.uwsgi.errors.UnsupportedModifier
- gunicorn.uwsgi.errors.ForbiddenUWSGIRequest
- gunicorn.uwsgi.message.UWSGIRequest
- gunicorn.uwsgi.parser.UWSGIParser
- gunicorn.http.wsgi.FileWrapper
- gunicorn.http.wsgi.WSGIErrorsWrapper
- gunicorn.http.wsgi.Response
- gunicorn.workers.base.Worker
- gunicorn.workers.gthread.TConn
- gunicorn.workers.gthread.PollableMethodQueue
- gunicorn.workers.gthread.ThreadWorker
- gunicorn.workers.base_async.AsyncWorker
- gunicorn.workers.geventlet.EventletWorker
- gunicorn.workers.ggevent.GeventWorker
- gunicorn.workers.ggevent.GeventResponse
- gunicorn.workers.ggevent.PyWSGIHandler
- gunicorn.workers.ggevent.PyWSGIServer
- gunicorn.workers.ggevent.GeventPyWSGIWorker
- gunicorn.workers.sync.StopWaiting
- gunicorn.workers.sync.SyncWorker
- gunicorn.asgi.unreader.AsyncUnreader
- gunicorn.asgi.message.AsyncRequest
- gunicorn.asgi.uwsgi.AsyncUWSGIRequest
- gunicorn.asgi.protocol.ASGIResponseInfo
- gunicorn.asgi.protocol.ASGIProtocol
- gunicorn.asgi.websocket.WebSocketProtocol
- gunicorn.asgi.lifespan.LifespanManager
- gunicorn.workers.gasgi.ASGIWorker
- gunicorn.workers.gtornado.TornadoWorker
- gunicorn.workers.gtornado.TornadoWorker.run._HTTPServer
- gunicorn.instrument.statsd.Statsd
All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: '...fuzz_util'
    functionSourceFile: '...fuzz_util'
    functionUses: 0
    functionsReached:
    - atheris.Setup
    - atheris.Fuzz
    - atheris.instrument_imports
    - '...fuzz_util.main'
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.instrument_imports
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 22
    functionName: '...fuzz_util.TestInput'
    functionSourceFile: '...fuzz_util'
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - urllib.parse.urlsplit
    - gunicorn.util.http_date
    - traceback.print_exception
    - sys.stderr.flush
    - host.lower
    - msg.splitlines
    - gunicorn.util.split_request_uri
    - ast.literal_eval
    - gunicorn.util.to_bytestring
    - fdp.ConsumeInt
    - fdp.ConsumeString
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.len
    - module.endswith
    - ast.parse
    - uri.startswith
    - os.path.exists
    - atheris.FuzzedDataProvider
    - gunicorn.util.parse_address
    - value.encode
    - <builtin>.enumerate
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - netloc.startswith
    - <builtin>.int
    - <builtin>.print
    - <builtin>.isinstance
    - <builtin>.str
    - time.time
    - gunicorn.util.is_ipv6
    - netloc.split
    - re.split
    - parts._replace
    - gunicorn.util.import_app
    - email.utils.formatdate
    - sys.exc_info
    - module.split
    - re.match
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.FuzzedDataProvider
    functionSourceFile: atheris
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeString
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 223
    functionName: gunicorn.util.is_ipv6
    functionSourceFile: gunicorn.util
    functionUses: 18
    functionsReached:
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 602
    functionName: gunicorn.util.warn
    functionSourceFile: gunicorn.util
    functionUses: 15
    functionsReached:
    - <builtin>.print
    - sys.stderr.flush
    - <builtin>.enumerate
    - msg.splitlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - uri
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 628
    functionName: gunicorn.util.split_request_uri
    functionSourceFile: gunicorn.util
    functionUses: 19
    functionsReached:
    - urllib.parse.urlsplit
    - parts._replace
    - uri.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 0
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a228dfd0>
    argNames:
    - netloc
    - default_port
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 233
    functionName: gunicorn.util.parse_address
    functionSourceFile: gunicorn.util
    functionUses: 3
    functionsReached:
    - netloc.split
    - re.split
    - netloc.startswith
    - <builtin>.int
    - host.lower
    - re.match
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 171
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fdp.ConsumeInt
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d67e20>
    argNames:
    - timestamp
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 466
    functionName: gunicorn.util.http_date
    functionSourceFile: gunicorn.util
    functionUses: 7
    functionsReached:
    - time.time
    - email.utils.formatdate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19dd610>
    argNames:
    - value
    - encoding
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 579
    functionName: gunicorn.util.to_bytestring
    functionSourceFile: gunicorn.util
    functionUses: 9
    functionsReached:
    - <builtin>.isinstance
    - value.encode
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - module
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 369
    functionName: gunicorn.util.import_app
    functionSourceFile: gunicorn.util
    functionUses: 14
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.len
    - traceback.print_exception
    - gunicorn.util._called_with_wrong_args
    - sys.exc_info
    - ast.literal_eval
    - module.endswith
    - module.split
    - ast.parse
    - os.path.exists
    - <builtin>.isinstance
    - <builtin>.callable
    linkageType: pythonLinkage
    raised:
    - AppImportError
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: '...fuzz_util.main'
    functionSourceFile: '...fuzz_util'
    functionUses: 1
    functionsReached:
    - atheris.Setup
    - atheris.Fuzz
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Setup
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atheris.Fuzz
    functionSourceFile: atheris
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn
    functionSourceFile: gunicorn
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.errors
    functionSourceFile: gunicorn.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24aed90>
    argNames:
    - self
    - reason
    - exit_status
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 15
    functionName: gunicorn.errors.HaltServer.__init__
    functionSourceFile: gunicorn.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: gunicorn.errors.HaltServer.__str__
    functionSourceFile: gunicorn.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.util
    functionSourceFile: gunicorn.util
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.set
    - setproctitle.getproctitle
    - sys.platform.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.getattr
    functionSourceFile: <builtin>
    functionUses: 124
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.set
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - title
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 66
    functionName: gunicorn.util._setproctitle
    functionSourceFile: gunicorn.util
    functionUses: 26
    functionsReached:
    - setproctitle.setproctitle
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: setproctitle.getproctitle
    functionSourceFile: setproctitle
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: setproctitle.setproctitle
    functionSourceFile: setproctitle
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - distribution
    - group
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: gunicorn.util.load_entry_point
    functionSourceFile: gunicorn.util
    functionUses: 14
    functionsReached:
    - importlib_metadata.distribution
    - importlib.metadata.distribution
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib_metadata.distribution
    functionSourceFile: importlib_metadata
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.metadata.distribution
    functionSourceFile: importlib
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24af9a0>
    - <ast.Constant object at 0x7f99a24afe20>
    argNames:
    - uri
    - default
    - section
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 79
    functionName: gunicorn.util.load_class
    functionSourceFile: gunicorn.util
    functionUses: 13
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.len
    - importlib.metadata.distribution
    - entry_str.rsplit
    - components.pop
    - importlib_metadata.distribution
    - uri.split
    - gunicorn.util.load_entry_point
    - uri.startswith
    - inspect.isclass
    - traceback.format_exc
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isclass
    functionSourceFile: inspect
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.startswith
    functionSourceFile: <builtin>
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.split
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: entry_str.rsplit
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.format_exc
    functionSourceFile: traceback
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 262
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: components.pop
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.import_module
    functionSourceFile: importlib
    functionUses: 55
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 135
    functionName: gunicorn.util.get_arity
    functionSourceFile: gunicorn.util
    functionUses: 2
    functionsReached:
    - inspect.signature
    - sig.parameters.values
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.signature
    functionSourceFile: inspect
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sig.parameters.values
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - uid
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: gunicorn.util.get_username
    functionSourceFile: gunicorn.util
    functionUses: 21
    functionsReached:
    - pwd.getpwuid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pwd.getpwuid
    functionSourceFile: pwd
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 4
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22716a0>
    argNames:
    - uid
    - gid
    - initgroups
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 151
    functionName: gunicorn.util.set_owner_process
    functionSourceFile: gunicorn.util
    functionUses: 20
    functionsReached:
    - os.getuid
    - os.getgid
    - os.setuid
    - pwd.getpwuid
    - os.initgroups
    - os.setgid
    - gunicorn.util.get_username
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.initgroups
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getgid
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.setgid
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getuid
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.setuid
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - path
    - uid
    - gid
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 170
    functionName: gunicorn.util.chown
    functionSourceFile: gunicorn.util
    functionUses: 23
    functionsReached:
    - os.chown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.chown
    functionSourceFile: os
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.platform.startswith
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22e2ee0>
    argNames:
    - func
    - pathname
    - waitall
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: gunicorn.util._waitfor
    functionSourceFile: gunicorn.util
    functionUses: 1
    functionsReached:
    - os.path.split
    - os.listdir
    - os.unlink
    - warnings.warn
    - time.sleep
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.unlink
    functionSourceFile: os
    functionUses: 49
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.split
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.listdir
    functionSourceFile: os
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.sleep
    functionSourceFile: time
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: warnings.warn
    functionSourceFile: warnings
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 208
    functionName: gunicorn.util._unlink
    functionSourceFile: gunicorn.util
    functionUses: 0
    functionsReached:
    - os.path.split
    - os.listdir
    - gunicorn.util._waitfor
    - os.unlink
    - warnings.warn
    - time.sleep
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - filename
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 214
    functionName: gunicorn.util.unlink
    functionSourceFile: gunicorn.util
    functionUses: 21
    functionsReached:
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.inet_pton
    functionSourceFile: socket
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.match
    functionSourceFile: re
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.split
    functionSourceFile: re
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: netloc.startswith
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.int
    functionSourceFile: <builtin>
    functionUses: 86
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: netloc.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fd
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 264
    functionName: gunicorn.util.close_on_exec
    functionSourceFile: gunicorn.util
    functionUses: 25
    functionsReached:
    - fcntl.fcntl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fcntl.fcntl
    functionSourceFile: fcntl
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fd
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 270
    functionName: gunicorn.util.set_non_blocking
    functionSourceFile: gunicorn.util
    functionUses: 1
    functionsReached:
    - fcntl.fcntl
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 275
    functionName: gunicorn.util.close
    functionSourceFile: gunicorn.util
    functionUses: 6
    functionsReached:
    - sock.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.close
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - fd_low
    - fd_high
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 285
    functionName: gunicorn.util.closerange
    functionSourceFile: gunicorn.util
    functionUses: 0
    functionsReached:
    - <builtin>.range
    - os.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.range
    functionSourceFile: <builtin>
    functionUses: 93
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.close
    functionSourceFile: os
    functionUses: 43
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 294
    functionName: gunicorn.util.write_chunk
    functionSourceFile: gunicorn.util
    functionUses: 17
    functionsReached:
    - sock.sendall
    - <builtin>.len
    - <builtin>.isinstance
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 301
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.encode
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.sendall
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1ba1c10>
    argNames:
    - sock
    - data
    - chunked
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 302
    functionName: gunicorn.util.write
    functionSourceFile: gunicorn.util
    functionUses: 16
    functionsReached:
    - sock.sendall
    - <builtin>.len
    - gunicorn.util.write_chunk
    - <builtin>.isinstance
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1ba1be0>
    argNames:
    - sock
    - data
    - chunked
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 308
    functionName: gunicorn.util.write_nonblock
    functionSourceFile: gunicorn.util
    functionUses: 9
    functionsReached:
    - sock.gettimeout
    - sock.sendall
    - <builtin>.len
    - sock.setblocking
    - gunicorn.util.write_chunk
    - gunicorn.util.write
    - <builtin>.isinstance
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.gettimeout
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.setblocking
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - status_int
    - reason
    - mesg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 320
    functionName: gunicorn.util.write_error
    functionSourceFile: gunicorn.util
    functionUses: 8
    functionsReached:
    - sock.gettimeout
    - <builtin>.len
    - http.encode
    - sock.sendall
    - html.escape
    - sock.setblocking
    - gunicorn.util.write_chunk
    - gunicorn.util.write_nonblock
    - gunicorn.util.write
    - <builtin>.isinstance
    - data.encode
    - <builtin>.str
    - textwrap.dedent
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: textwrap.dedent
    functionSourceFile: textwrap
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: html.escape
    functionSourceFile: html
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.encode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - f
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 343
    functionName: gunicorn.util._called_with_wrong_args
    functionSourceFile: gunicorn.util
    functionUses: 15
    functionsReached:
    - sys.exc_info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exc_info
    functionSourceFile: sys
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: module.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: module.endswith
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.exists
    functionSourceFile: os
    functionUses: 75
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ast.parse
    functionSourceFile: ast
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ast.literal_eval
    functionSourceFile: ast
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.print_exception
    functionSourceFile: traceback
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 452
    functionName: gunicorn.util.getcwd
    functionSourceFile: gunicorn.util
    functionUses: 8
    functionsReached:
    - os.stat
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.stat
    functionSourceFile: os
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getcwd
    functionSourceFile: os
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.time
    functionSourceFile: time
    functionUses: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: email.utils.formatdate
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - header
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 474
    functionName: gunicorn.util.is_hoppish
    functionSourceFile: gunicorn.util
    functionUses: 2
    functionsReached:
    - header.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header.lower
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 14
    IfCount: 6
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a241fe20>
    argNames:
    - enable_stdio_inheritance
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 478
    functionName: gunicorn.util.daemonize
    functionSourceFile: gunicorn.util
    functionUses: 5
    functionsReached:
    - os.open
    - os.setsid
    - gunicorn.util.daemonize.redirect
    - sys.stdout.fileno
    - sys.stderr.isatty
    - os.umask
    - os.closerange
    - os.fork
    - sys.stdout.isatty
    - sys.stderr.fileno
    - os._exit
    - os.set_inheritable
    - os.close
    - os.dup2
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fork
    functionSourceFile: os
    functionUses: 33
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os._exit
    functionSourceFile: os
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.setsid
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.umask
    functionSourceFile: os
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.closerange
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.open
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.set_inheritable
    functionSourceFile: os
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.dup2
    functionSourceFile: os
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - stream
    - fd_expect
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 551
    functionName: gunicorn.util.daemonize.redirect
    functionSourceFile: gunicorn.util
    functionUses: 6
    functionsReached:
    - sys.stdout.fileno
    - sys.stderr.isatty
    - sys.stdout.isatty
    - sys.stderr.fileno
    - os.close
    - os.dup2
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.fileno
    functionSourceFile: sys
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.fileno
    functionSourceFile: sys
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.isatty
    functionSourceFile: sys
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stdout.isatty
    functionSourceFile: sys
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 564
    functionName: gunicorn.util.seed
    functionSourceFile: gunicorn.util
    functionUses: 20
    functionsReached:
    - os.getpid
    - random.seed
    - time.time
    - os.urandom
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.urandom
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: random.seed
    functionSourceFile: random
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getpid
    functionSourceFile: os
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 571
    functionName: gunicorn.util.check_is_writable
    functionSourceFile: gunicorn.util
    functionUses: 4
    functionsReached:
    - f.close
    - <builtin>.open
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.open
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.close
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.encode
    functionSourceFile: <builtin>
    functionUses: 90
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - obj
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 589
    functionName: gunicorn.util.has_fileno
    functionSourceFile: gunicorn.util
    functionUses: 2
    functionsReached:
    - <builtin>.hasattr
    - obj.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hasattr
    functionSourceFile: <builtin>
    functionUses: 93
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: obj.fileno
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.splitlines
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.enumerate
    functionSourceFile: <builtin>
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.flush
    functionSourceFile: sys
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 615
    functionName: gunicorn.util.make_fail_app
    functionSourceFile: gunicorn.util
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - gunicorn.util.to_bytestring
    - value.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - environ
    - start_response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 618
    functionName: gunicorn.util.make_fail_app.app
    functionSourceFile: gunicorn.util
    functionUses: 14
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.urlsplit
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parts._replace
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24c8c40>
    argNames:
    - tp
    - value
    - tb
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 641
    functionName: gunicorn.util.reraise
    functionSourceFile: gunicorn.util
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - b
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 653
    functionName: gunicorn.util.bytes_to_str
    functionSourceFile: gunicorn.util
    functionUses: 19
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - string
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 659
    functionName: gunicorn.util.unquote_to_wsgi_str
    functionSourceFile: gunicorn.util
    functionUses: 15
    functionsReached:
    - urllib.parse.unquote_to_bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: urllib.parse.unquote_to_bytes
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers
    functionSourceFile: gunicorn.workers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.systemd
    functionSourceFile: gunicorn.systemd
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24afa00>
    argNames:
    - unset_environment
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 11
    functionName: gunicorn.systemd.listen_fds
    functionSourceFile: gunicorn.systemd
    functionUses: 0
    functionsReached:
    - os.environ.get
    - os.getpid
    - os.environ.pop
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.get
    functionSourceFile: os
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.pop
    functionSourceFile: os
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b00eb0>
    argNames:
    - state
    - logger
    - unset_environment
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 48
    functionName: gunicorn.systemd.sd_notify
    functionSourceFile: gunicorn.systemd
    functionUses: 0
    functionsReached:
    - os.environ.get
    - sock.connect
    - state.encode
    - logger.debug
    - os.environ.pop
    - sock.sendall
    - sock.close
    - socket.socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.socket
    functionSourceFile: socket
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.connect
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: state.encode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger.debug
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.glogging
    functionSourceFile: gunicorn.glogging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: gunicorn.glogging.loggers
    functionSourceFile: gunicorn.glogging
    functionUses: 2
    functionsReached:
    - <builtin>.list
    - logging.getLogger
    - logging.root.manager.loggerDict.keys
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.root.manager.loggerDict.keys
    functionSourceFile: logging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.list
    functionSourceFile: <builtin>
    functionUses: 110
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.getLogger
    functionSourceFile: logging
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - atoms
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: gunicorn.glogging.SafeAtoms.__init__
    functionSourceFile: gunicorn.glogging
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - atoms.items
    - value.replace
    - dict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dict.__init__
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atoms.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.replace
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - k
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: gunicorn.glogging.SafeAtoms.__getitem__
    functionSourceFile: gunicorn.glogging
    functionUses: 0
    functionsReached:
    - k.startswith
    - <builtin>.super
    - k.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: k.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: k.lower
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.super
    functionSourceFile: <builtin>
    functionUses: 90
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 0
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 118
    functionName: gunicorn.glogging.parse_syslog_address
    functionSourceFile: gunicorn.glogging
    functionUses: 4
    functionsReached:
    - addr.startswith
    - <builtin>.len
    - addr.split
    - port.isdigit
    - <builtin>.int
    - addr.lower
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: addr.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: addr.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: addr.lower
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: port.isdigit
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cfg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 183
    functionName: gunicorn.glogging.Logger.__init__
    functionSourceFile: gunicorn.glogging
    functionUses: 1
    functionsReached:
    - log.addHandler
    - sys.stdout.fileno
    - threading.Lock
    - gunicorn.glogging.Logger.setup
    - logging.config.fileConfig
    - logging.FileHandler
    - os.path.dirname
    - f.close
    - gunicorn.util.check_is_writable
    - gunicorn.glogging.Logger._get_gunicorn_handler
    - config.update
    - os.dup2
    - logging.config.dictConfig
    - cfg.syslog_facility.lower
    - <builtin>.getattr
    - gunicorn.glogging.Logger._set_syslog_handler
    - logging.Formatter
    - h.setFormatter
    - <builtin>.len
    - addr.split
    - <builtin>.open
    - gunicorn.glogging.Logger._set_handler
    - port.isdigit
    - sys.stderr.fileno
    - addr.lower
    - json.load
    - os.path.exists
    - logging.StreamHandler
    - logging.getLogger
    - <builtin>.int
    - os.chown
    - addr.startswith
    - log.handlers.remove
    - CONFIG_DEFAULTS.copy
    - logging.INFO.lower
    - cfg.proc_name.replace
    - stream.flush
    - gunicorn.glogging.parse_syslog_address
    - logging.handlers.SysLogHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Lock
    functionSourceFile: threading
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 14
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cfg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 195
    functionName: gunicorn.glogging.Logger.setup
    functionSourceFile: gunicorn.glogging
    functionUses: 2
    functionsReached:
    - log.addHandler
    - sys.stdout.fileno
    - logging.config.fileConfig
    - logging.FileHandler
    - os.path.dirname
    - f.close
    - gunicorn.util.check_is_writable
    - gunicorn.glogging.Logger._get_gunicorn_handler
    - config.update
    - os.dup2
    - logging.config.dictConfig
    - cfg.syslog_facility.lower
    - <builtin>.getattr
    - gunicorn.glogging.Logger._set_syslog_handler
    - logging.Formatter
    - h.setFormatter
    - <builtin>.len
    - addr.split
    - <builtin>.open
    - gunicorn.glogging.Logger._set_handler
    - port.isdigit
    - sys.stderr.fileno
    - addr.lower
    - json.load
    - os.path.exists
    - logging.StreamHandler
    - <builtin>.int
    - os.chown
    - addr.startswith
    - log.handlers.remove
    - CONFIG_DEFAULTS.copy
    - logging.INFO.lower
    - cfg.proc_name.replace
    - stream.flush
    - gunicorn.glogging.parse_syslog_address
    - logging.handlers.SysLogHandler
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.INFO.lower
    functionSourceFile: logging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.flush
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.Formatter
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 5
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24f4fa0>
    argNames:
    - self
    - log
    - output
    - fmt
    - stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 409
    functionName: gunicorn.glogging.Logger._set_handler
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached:
    - os.chown
    - log.addHandler
    - <builtin>.getattr
    - log.handlers.remove
    - h.setFormatter
    - logging.FileHandler
    - <builtin>.open
    - f.close
    - gunicorn.util.check_is_writable
    - gunicorn.glogging.Logger._get_gunicorn_handler
    - logging.StreamHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - log
    - cfg
    - fmt
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 433
    functionName: gunicorn.glogging.Logger._set_syslog_handler
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached:
    - cfg.syslog_facility.lower
    - log.addHandler
    - addr.startswith
    - logging.Formatter
    - h.setFormatter
    - cfg.proc_name.replace
    - <builtin>.len
    - addr.split
    - port.isdigit
    - <builtin>.int
    - addr.lower
    - gunicorn.glogging.parse_syslog_address
    - logging.handlers.SysLogHandler
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: CONFIG_DEFAULTS.copy
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.config.dictConfig
    functionSourceFile: logging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.load
    functionSourceFile: json
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.dirname
    functionSourceFile: os
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.config.fileConfig
    functionSourceFile: logging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 267
    functionName: gunicorn.glogging.Logger.critical
    functionSourceFile: gunicorn.glogging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 270
    functionName: gunicorn.glogging.Logger.error
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 273
    functionName: gunicorn.glogging.Logger.warning
    functionSourceFile: gunicorn.glogging
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 276
    functionName: gunicorn.glogging.Logger.info
    functionSourceFile: gunicorn.glogging
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 279
    functionName: gunicorn.glogging.Logger.debug
    functionSourceFile: gunicorn.glogging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 282
    functionName: gunicorn.glogging.Logger.exception
    functionSourceFile: gunicorn.glogging
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - lvl
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 285
    functionName: gunicorn.glogging.Logger.log
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached:
    - lvl.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lvl.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - resp
    - req
    - environ
    - request_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 290
    functionName: gunicorn.glogging.Logger.atoms
    functionSourceFile: gunicorn.glogging
    functionUses: 2
    functionsReached:
    - time.strftime
    - k.lower
    - <builtin>.hasattr
    - <builtin>.getattr
    - status.split
    - <builtin>.len
    - environ.items
    - gunicorn.glogging.Logger._get_user
    - http_auth.split
    - environ.get
    - atoms.update
    - <builtin>.int
    - base64.b64decode
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.glogging.Logger.debug
    - gunicorn.glogging.Logger.now
    - http_auth.lower
    - os.getpid
    - auth.split
    - req_headers.items
    - resp_headers.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - environ
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 459
    functionName: gunicorn.glogging.Logger._get_user
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached:
    - http_auth.split
    - <builtin>.len
    - http_auth.lower
    - environ.get
    - auth.split
    - base64.b64decode
    - gunicorn.glogging.Logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 366
    functionName: gunicorn.glogging.Logger.now
    functionSourceFile: gunicorn.glogging
    functionUses: 3
    functionsReached:
    - time.strftime
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req_headers.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: atoms.update
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp_headers.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.items
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - resp
    - req
    - environ
    - request_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 344
    functionName: gunicorn.glogging.Logger.access
    functionSourceFile: gunicorn.glogging
    functionUses: 1
    functionsReached:
    - time.strftime
    - k.lower
    - <builtin>.hasattr
    - atoms.items
    - <builtin>.getattr
    - status.split
    - <builtin>.len
    - gunicorn.glogging.Logger.error
    - environ.items
    - value.replace
    - traceback.format_exc
    - gunicorn.glogging.Logger._get_user
    - http_auth.split
    - environ.get
    - atoms.update
    - <builtin>.int
    - base64.b64decode
    - gunicorn.glogging.Logger.atoms
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.glogging.Logger.debug
    - gunicorn.glogging.Logger.now
    - http_auth.lower
    - gunicorn.glogging.SafeAtoms.__init__
    - os.getpid
    - auth.split
    - req_headers.items
    - resp_headers.items
    - dict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.strftime
    functionSourceFile: time
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 370
    functionName: gunicorn.glogging.Logger.reopen_files
    functionSourceFile: gunicorn.glogging
    functionUses: 0
    functionsReached:
    - handler._open
    - logging.getLogger
    - sys.stdout.fileno
    - <builtin>.list
    - handler.acquire
    - gunicorn.glogging.loggers
    - <builtin>.open
    - logging.root.manager.loggerDict.keys
    - sys.stderr.fileno
    - handler.release
    - stream.flush
    - os.dup2
    - <builtin>.isinstance
    - handler.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.acquire
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler._open
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.release
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 393
    functionName: gunicorn.glogging.Logger.close_on_exec
    functionSourceFile: gunicorn.glogging
    functionUses: 0
    functionsReached:
    - handler.stream.fileno
    - logging.getLogger
    - <builtin>.list
    - handler.acquire
    - gunicorn.util.close_on_exec
    - fcntl.fcntl
    - gunicorn.glogging.loggers
    - logging.root.manager.loggerDict.keys
    - handler.release
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: handler.stream.fileno
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - log
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 404
    functionName: gunicorn.glogging.Logger._get_gunicorn_handler
    functionSourceFile: gunicorn.glogging
    functionUses: 4
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.handlers.remove
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.StreamHandler
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.FileHandler
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h.setFormatter
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.addHandler
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cfg.proc_name.replace
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cfg.syslog_facility.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logging.handlers.SysLogHandler
    functionSourceFile: logging
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http_auth.lower
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http_auth.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64decode
    functionSourceFile: base64
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: auth.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.arbiter.Arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - <builtin>.property
    - <builtin>.getattr
    - <builtin>.dict
    - <builtin>.dir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dir
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.dict
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 53
    functionName: gunicorn.arbiter.Arbiter.__init__
    functionSourceFile: gunicorn.arbiter
    functionUses: 1
    functionsReached:
    - queue.SimpleQueue
    - importlib.import_module
    - traceback.print_exception
    - <builtin>.sorted
    - importlib_metadata.distribution
    - ast.literal_eval
    - uri.split
    - gunicorn.util.load_entry_point
    - <builtin>.hasattr
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - paste.deploy.loadapp
    - <builtin>.callable
    - args.insert
    - <builtin>.getattr
    - os.stat
    - <builtin>.len
    - gunicorn.util.getcwd
    - module.endswith
    - uri.startswith
    - ast.parse
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - gunicorn.app.base.BaseApplication.wsgi
    - traceback.format_exc
    - gunicorn.arbiter.Arbiter.setup
    - importlib.metadata.distribution
    - gunicorn.util._called_with_wrong_args
    - logger_class.install
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.isinstance
    - os.getcwd
    - gunicorn.config.Config.logger_class
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - entry_str.rsplit
    - components.pop
    - gunicorn.util.import_app
    - sys.exc_info
    - module.split
    - gunicorn.app.wsgiapp.WSGIApplication.load
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.SimpleQueue
    functionSourceFile: queue
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 109
    functionName: gunicorn.arbiter.Arbiter.setup
    functionSourceFile: gunicorn.arbiter
    functionUses: 4
    functionsReached:
    - importlib.import_module
    - traceback.print_exception
    - <builtin>.sorted
    - importlib_metadata.distribution
    - ast.literal_eval
    - uri.split
    - gunicorn.util.load_entry_point
    - <builtin>.hasattr
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - paste.deploy.loadapp
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.len
    - module.endswith
    - ast.parse
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - gunicorn.app.base.BaseApplication.wsgi
    - traceback.format_exc
    - importlib.metadata.distribution
    - gunicorn.util._called_with_wrong_args
    - logger_class.install
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.isinstance
    - os.getcwd
    - gunicorn.config.Config.logger_class
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - entry_str.rsplit
    - components.pop
    - gunicorn.util.import_app
    - sys.exc_info
    - module.split
    - gunicorn.app.wsgiapp.WSGIApplication.load
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.insert
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 100
    functionName: gunicorn.arbiter.Arbiter._get_num_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 103
    functionName: gunicorn.arbiter.Arbiter._set_num_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.property
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 154
    functionName: gunicorn.config.Config.logger_class
    functionSourceFile: gunicorn.config
    functionUses: 5
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.len
    - importlib.metadata.distribution
    - logger_class.install
    - entry_str.rsplit
    - components.pop
    - importlib_metadata.distribution
    - uri.split
    - gunicorn.util.load_entry_point
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - <builtin>.hasattr
    - traceback.format_exc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.arbiter.Arbiter.setup.<lambda1>
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 64
    functionName: gunicorn.app.base.BaseApplication.wsgi
    functionSourceFile: gunicorn.app.base
    functionUses: 5
    functionsReached:
    - importlib.import_module
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - traceback.print_exception
    - ast.literal_eval
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - paste.deploy.loadapp
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.len
    - module.endswith
    - ast.parse
    - os.path.exists
    - gunicorn.util._called_with_wrong_args
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.isinstance
    - os.getcwd
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.util.import_app
    - sys.exc_info
    - module.split
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 14
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 141
    functionName: gunicorn.arbiter.Arbiter.start
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.pidfile.Pidfile.__init__
    - threading.Thread
    - <builtin>.hasattr
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.super
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - f.read
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - gunicorn.ctl.server.ControlSocketServer.__init__
    - os.WIFSIGNALED
    - gunicorn.util.getcwd
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.environ.pop
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - <builtin>.range
    - os.getcwd
    - f.write
    - os.getegid
    - msg.format
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.is_ipv6
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - tempfile.gettempdir
    - asyncio.start_unix_server
    - signal.signal
    - socket.inet_pton
    - gunicorn.arbiter.Arbiter._get_control_socket_path
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - gunicorn.dirty.app.parse_dirty_app_spec
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - socket.socket
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.sock.create_sockets
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.environ.get
    - os.WTERMSIG
    - os.listdir
    - systemd.listen_fds
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - os.remove
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.run
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - sock.getsockname
    - socket.fromfd
    - writer.close
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.stash.set_stash_socket_path
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - listeners.append
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - os.write
    - gunicorn.arbiter.Arbiter.spawn_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - os.close
    - os.path.isabs
    - os.path.dirname
    - gunicorn.util._setproctitle
    - time.monotonic
    - os.geteuid
    - concurrent.futures.ThreadPoolExecutor
    - log.debug
    - os.getgid
    - <builtin>.set
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - fds.append
    - os.rmdir
    - gunicorn.dirty.client.set_dirty_socket_path
    - gunicorn.util.close_on_exec
    - os.umask
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - systemd.sd_notify
    - os.fdopen
    - gunicorn.arbiter.Arbiter._start_control_server
    - time.time
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - gunicorn.sock.TCPSocket.set_options
    - gunicorn.arbiter.Arbiter.init_signals
    - fcntl.fcntl
    - sys.exit
    - gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - time.sleep
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.ctl.handlers.CommandHandlers.__init__
    - gunicorn.util.get_username
    - gunicorn.sock._sock_type
    - sock.setsockopt
    - os.stat
    - <builtin>.len
    - <builtin>.open
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - gunicorn.ctl.server.ControlSocketServer.start
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - gunicorn.sock.BaseSocket.__init__
    - tempfile.mkdtemp
    - log.error
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - stat.S_ISSOCK
    - gunicorn.dirty.app.get_app_workers_attribute
    - heartbeat_task.cancel
    - app_paths.append
    - <builtin>.str
    - gunicorn.pidfile.Pidfile.create
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    - gunicorn.dirty.arbiter.DirtyArbiter.run
    - os.rename
    - spec.split
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - fname
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 17
    functionName: gunicorn.pidfile.Pidfile.__init__
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 21
    functionName: gunicorn.pidfile.Pidfile.create
    functionSourceFile: gunicorn.pidfile
    functionUses: 7
    functionsReached:
    - os.chmod
    - os.write
    - tempfile.mkstemp
    - f.read
    - <builtin>.open
    - <builtin>.int
    - os.getpid
    - os.path.dirname
    - os.close
    - os.kill
    - os.rename
    - os.path.isdir
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 201
    functionName: gunicorn.arbiter.Arbiter.init_signals
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: systemd.listen_fds
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fds.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 10
    IfCount: 8
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a29c2340>
    argNames:
    - conf
    - log
    - fds
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 165
    functionName: gunicorn.sock.create_sockets
    functionSourceFile: gunicorn.sock
    functionUses: 10
    functionsReached:
    - <builtin>.list
    - os.close
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - sock.setsockopt
    - os.stat
    - os.remove
    - os.path.exists
    - gunicorn.sock.BaseSocket.__init__
    - log.error
    - sock.getsockname
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - sys.exit
    - gunicorn.sock.UnixSocket.__init__
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: systemd.sd_notify
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 11
    functionLinenumber: 833
    functionName: gunicorn.arbiter.Arbiter.spawn_dirty_arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 4
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - f.read
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - <builtin>.range
    - f.write
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - tempfile.gettempdir
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - gunicorn.dirty.app.parse_dirty_app_spec
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - os.listdir
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.run
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.stash.set_stash_socket_path
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - gunicorn.dirty.app.load_dirty_app
    - asyncio.new_event_loop
    - gunicorn.dirty.arbiter.DirtyArbiter.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - os.geteuid
    - gunicorn.util._setproctitle
    - os.close
    - time.monotonic
    - concurrent.futures.ThreadPoolExecutor
    - os.getgid
    - <builtin>.set
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - os.rmdir
    - gunicorn.dirty.client.set_dirty_socket_path
    - gunicorn.util.close_on_exec
    - os.umask
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - sys.exit
    - gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - time.sleep
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - <builtin>.open
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - tempfile.mkdtemp
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - heartbeat_task.cancel
    - gunicorn.dirty.app.get_app_workers_attribute
    - app_paths.append
    - <builtin>.str
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    - gunicorn.dirty.arbiter.DirtyArbiter.run
    - spec.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 948
    functionName: gunicorn.arbiter.Arbiter._start_control_server
    functionSourceFile: gunicorn.arbiter
    functionUses: 3
    functionsReached:
    - gunicorn.arbiter.Arbiter._get_control_socket_path
    - os.stat
    - threading.Thread
    - os.path.join
    - gunicorn.ctl.server.ControlSocketServer.__init__
    - gunicorn.util.getcwd
    - os.path.isabs
    - gunicorn.ctl.server.ControlSocketServer.start
    - gunicorn.ctl.handlers.CommandHandlers.__init__
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 213
    functionName: gunicorn.arbiter.Arbiter.signal
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 18
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 217
    functionName: gunicorn.arbiter.Arbiter.run
    functionSourceFile: gunicorn.arbiter
    functionUses: 1
    functionsReached:
    - importlib.import_module
    - gunicorn.arbiter.Arbiter.kill_workers
    - sibling.tmp.close
    - <builtin>.list
    - asyncio.create_task
    - sys.stderr.flush
    - gunicorn.pidfile.Pidfile.__init__
    - threading.Thread
    - <builtin>.sorted
    - <builtin>.hasattr
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - gunicorn.arbiter.Arbiter.spawn_worker
    - <builtin>.super
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - gunicorn.arbiter.Arbiter.kill_worker
    - f.read
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - gunicorn.ctl.server.ControlSocketServer.__init__
    - os.WIFSIGNALED
    - gunicorn.util.getcwd
    - worker.tmp.close
    - gunicorn.ctl.server.ControlSocketServer.stop
    - inspect.isclass
    - <builtin>.sum
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - app.init
    - signals.append
    - os.environ.pop
    - os.WIFEXITED
    - importlib.metadata.distribution
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - <builtin>.range
    - os.getcwd
    - f.write
    - os.getegid
    - msg.format
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.is_ipv6
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - tempfile.gettempdir
    - asyncio.start_unix_server
    - socket.inet_pton
    - signal.signal
    - gunicorn.arbiter.Arbiter.wait_for_signals
    - gunicorn.arbiter.Arbiter.stop
    - gunicorn.arbiter.Arbiter._get_control_socket_path
    - sock.close
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - gunicorn.dirty.app.parse_dirty_app_spec
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - socket.socket
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.sock.create_sockets
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.environ.get
    - os.WTERMSIG
    - os.listdir
    - systemd.listen_fds
    - tempfile.mkstemp
    - gunicorn.config.Config.worker_class
    - gunicorn.arbiter.Arbiter.start
    - os.remove
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.run
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - socket.fromfd
    - writer.close
    - gunicorn.arbiter.Arbiter.reap_workers
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.stash.set_stash_socket_path
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.sock.close_sockets
    - entry_str.rsplit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - random.random
    - listeners.append
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - os.write
    - gunicorn.arbiter.Arbiter.spawn_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - uri.endswith
    - os.path.dirname
    - gunicorn.util._setproctitle
    - os.close
    - time.monotonic
    - gunicorn.util.load_entry_point
    - importlib_metadata.distribution
    - os.path.isabs
    - os.geteuid
    - concurrent.futures.ThreadPoolExecutor
    - log.debug
    - gunicorn.pidfile.Pidfile.rename
    - os.getgid
    - <builtin>.set
    - gunicorn.arbiter.Arbiter.halt
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - fds.append
    - traceback.format_exc
    - os.rmdir
    - gunicorn.dirty.client.set_dirty_socket_path
    - os.umask
    - gunicorn.util.close_on_exec
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - worker.init_process
    - systemd.sd_notify
    - os.fdopen
    - gunicorn.arbiter.Arbiter._start_control_server
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.arbiter.Arbiter.murder_workers
    - time.time
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.sock.TCPSocket.set_options
    - gunicorn.arbiter.Arbiter.init_signals
    - fcntl.fcntl
    - sys.exit
    - gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - time.sleep
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - gunicorn.arbiter.Arbiter._stop_control_server
    - os.unlink
    - uri.split
    - gunicorn.ctl.handlers.CommandHandlers.__init__
    - gunicorn.util.get_username
    - gunicorn.sock._sock_type
    - workers.pop
    - sock.setsockopt
    - os.stat
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - <builtin>.open
    - uri.startswith
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - os.path.isdir
    - gunicorn.arbiter.Arbiter.manage_dirty_arbiter
    - gunicorn.pidfile.Pidfile.unlink
    - gunicorn.util.load_class
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - gunicorn.ctl.server.ControlSocketServer.start
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - gunicorn.sock.BaseSocket.__init__
    - gunicorn.arbiter.Arbiter.maybe_promote_master
    - tempfile.mkdtemp
    - log.error
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - stat.S_ISSOCK
    - gunicorn.dirty.app.get_app_workers_attribute
    - heartbeat_task.cancel
    - <builtin>.print
    - app_paths.append
    - <builtin>.str
    - gunicorn.pidfile.Pidfile.create
    - os.urandom
    - os.getuid
    - os.chown
    - worker_class.setup
    - pwd.getpwuid
    - app.close
    - gunicorn.dirty.arbiter.DirtyArbiter.run
    - os.rename
    - spec.split
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 651
    functionName: gunicorn.arbiter.Arbiter.manage_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 6
    functionsReached:
    - importlib.import_module
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - <builtin>.sorted
    - uri.endswith
    - importlib_metadata.distribution
    - gunicorn.util._setproctitle
    - uri.split
    - setproctitle.setproctitle
    - gunicorn.util.load_entry_point
    - <builtin>.hasattr
    - os.close
    - gunicorn.arbiter.Arbiter.spawn_worker
    - gunicorn.sock.create_sockets
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - workers.pop
    - <builtin>.getattr
    - gunicorn.arbiter.Arbiter.kill_worker
    - sock.setsockopt
    - gunicorn.config.Config.worker_class
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - os.stat
    - os.remove
    - worker.tmp.close
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - traceback.format_exc
    - <builtin>.sum
    - gunicorn.sock.BaseSocket.__init__
    - importlib.metadata.distribution
    - log.error
    - os.fork
    - sock.getsockname
    - worker.init_process
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.print
    - <builtin>.str
    - worker_class.setup
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - entry_str.rsplit
    - sys.exit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - os.kill
    - random.random
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 348
    functionName: gunicorn.arbiter.Arbiter.maybe_promote_master
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - os.chmod
    - os.write
    - os.unlink
    - os.path.dirname
    - gunicorn.util._setproctitle
    - setproctitle.setproctitle
    - os.close
    - gunicorn.pidfile.Pidfile.rename
    - f.read
    - tempfile.mkstemp
    - <builtin>.open
    - os.path.isdir
    - gunicorn.pidfile.Pidfile.unlink
    - <builtin>.int
    - os.getppid
    - gunicorn.pidfile.Pidfile.create
    - os.getpid
    - os.kill
    - os.rename
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a23c12b0>
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 386
    functionName: gunicorn.arbiter.Arbiter.wait_for_signals
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - sys.exit
    - signals.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 572
    functionName: gunicorn.arbiter.Arbiter.murder_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - gunicorn.arbiter.Arbiter.kill_worker
    - <builtin>.list
    - worker.tmp.last_update
    - os.kill
    - worker.tmp.close
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 926
    functionName: gunicorn.arbiter.Arbiter.manage_dirty_arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - f.read
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - <builtin>.range
    - f.write
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - tempfile.gettempdir
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - gunicorn.dirty.app.parse_dirty_app_spec
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - os.listdir
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.run
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.stash.set_stash_socket_path
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - gunicorn.dirty.app.load_dirty_app
    - asyncio.new_event_loop
    - gunicorn.dirty.arbiter.DirtyArbiter.__init__
    - gunicorn.arbiter.Arbiter.spawn_dirty_arbiter
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - os.rmdir
    - gunicorn.dirty.client.set_dirty_socket_path
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os.umask
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - fcntl.fcntl
    - sys.exit
    - gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - time.sleep
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - <builtin>.open
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - tempfile.mkdtemp
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - heartbeat_task.cancel
    - gunicorn.dirty.app.get_app_workers_attribute
    - app_paths.append
    - <builtin>.str
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    - gunicorn.dirty.arbiter.DirtyArbiter.run
    - spec.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19dda30>
    - <ast.Constant object at 0x7f99a19ddee0>
    argNames:
    - self
    - reason
    - exit_status
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 369
    functionName: gunicorn.arbiter.Arbiter.halt
    functionSourceFile: gunicorn.arbiter
    functionUses: 2
    functionsReached:
    - gunicorn.arbiter.Arbiter.stop
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - sock.close
    - gunicorn.arbiter.Arbiter._stop_control_server
    - os.unlink
    - os.WTERMSIG
    - gunicorn.sock._sock_type
    - gunicorn.arbiter.Arbiter.kill_worker
    - f.read
    - <builtin>.open
    - os.WIFSIGNALED
    - worker.tmp.close
    - gunicorn.ctl.server.ControlSocketServer.stop
    - gunicorn.pidfile.Pidfile.unlink
    - os.path.exists
    - os.waitpid
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - os.WIFEXITED
    - <builtin>.int
    - sock.getsockname
    - <builtin>.isinstance
    - gunicorn.arbiter.Arbiter.reap_workers
    - time.time
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.sock.close_sockets
    - gunicorn.util.is_ipv6
    - sys.exit
    - os.kill
    - time.sleep
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 14
    IfCount: 6
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1bd7a30>
    argNames:
    - self
    - graceful
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 411
    functionName: gunicorn.arbiter.Arbiter.stop
    functionSourceFile: gunicorn.arbiter
    functionUses: 5
    functionsReached:
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - sock.close
    - os.unlink
    - os.WTERMSIG
    - gunicorn.sock._sock_type
    - gunicorn.arbiter.Arbiter.kill_worker
    - os.WIFSIGNALED
    - worker.tmp.close
    - os.waitpid
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - os.WIFEXITED
    - sock.getsockname
    - gunicorn.arbiter.Arbiter.reap_workers
    - <builtin>.isinstance
    - time.time
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.sock.close_sockets
    - gunicorn.util.is_ipv6
    - os.kill
    - time.sleep
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: gunicorn.pidfile.Pidfile.unlink
    functionSourceFile: gunicorn.pidfile
    functionUses: 7
    functionsReached:
    - os.unlink
    - <builtin>.open
    - f.read
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.exit
    functionSourceFile: sys
    functionUses: 35
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 261
    functionName: gunicorn.arbiter.Arbiter.signal_chld
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 265
    functionName: gunicorn.arbiter.Arbiter.handle_chld
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WTERMSIG
    - os.WEXITSTATUS
    - os.WIFEXITED
    - os.WIFSIGNALED
    - worker.tmp.close
    - gunicorn.arbiter.Arbiter.reap_workers
    - os.waitpid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 7
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 593
    functionName: gunicorn.arbiter.Arbiter.reap_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 9
    functionsReached:
    - os.WTERMSIG
    - os.WEXITSTATUS
    - os.WIFEXITED
    - os.WIFSIGNALED
    - worker.tmp.close
    - os.waitpid
    linkageType: pythonLinkage
    raised:
    - HaltServer
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 895
    functionName: gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 7
    functionsReached:
    - os.WTERMSIG
    - os.WEXITSTATUS
    - os.WIFEXITED
    - os.WIFSIGNALED
    - os.waitpid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 274
    functionName: gunicorn.arbiter.Arbiter.handle_hup
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - gunicorn.pidfile.Pidfile.__init__
    - <builtin>.sorted
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - <builtin>.hasattr
    - gunicorn.arbiter.Arbiter.spawn_worker
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - gunicorn.arbiter.Arbiter.kill_worker
    - f.read
    - os.WIFSIGNALED
    - module.endswith
    - worker.tmp.close
    - gunicorn.app.base.Application.get_config_from_module_name
    - inspect.isclass
    - <builtin>.sum
    - os.waitpid
    - gunicorn.app.base.BaseApplication.reload
    - os.WEXITSTATUS
    - os.WIFEXITED
    - importlib.metadata.distribution
    - logger_class.install
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.range
    - os.getcwd
    - msg.format
    - gunicorn.config.Config.__init__
    - gunicorn.util.is_ipv6
    - os.path.splitext
    - local_conf.items
    - os.kill
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - socket.inet_pton
    - importlib.util.module_from_spec
    - os.environ.copy
    - k.lower
    - ast.literal_eval
    - setproctitle.setproctitle
    - socket.socket
    - gunicorn.arbiter.Arbiter.reload
    - gunicorn.sock.create_sockets
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - os.WTERMSIG
    - tempfile.mkstemp
    - gunicorn.config.Config.worker_class
    - os.remove
    - ast.parse
    - gunicorn.app.base.BaseApplication.wsgi
    - gunicorn.arbiter.Arbiter.setup
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - socket.fromfd
    - gunicorn.arbiter.Arbiter.reap_workers
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - entry_str.rsplit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - module.split
    - random.random
    - gunicorn.debug.Spew.__init__
    - listeners.append
    - os.write
    - parser.has_section
    - msg.splitlines
    - uri.endswith
    - os.path.dirname
    - os.close
    - gunicorn.util._setproctitle
    - time.monotonic
    - importlib_metadata.distribution
    - gunicorn.util.load_entry_point
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - log.debug
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - traceback.format_exc
    - <builtin>.enumerate
    - os.path.join
    - worker.init_process
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.sock.TCPSocket.set_options
    - sys.exit
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - os.path.basename
    - time.sleep
    - <builtin>.min
    - os.chmod
    - traceback.print_exception
    - sys.settrace
    - os.unlink
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - uri.split
    - lnr.close
    - paste.deploy.loadapp
    - gunicorn.sock._sock_type
    - workers.pop
    - sock.setsockopt
    - cfg.items
    - os.stat
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - <builtin>.open
    - uri.startswith
    - os.path.isdir
    - gunicorn.util.load_class
    - gunicorn.pidfile.Pidfile.unlink
    - importlib.machinery.SourceFileLoader
    - gunicorn.sock.BaseSocket.__init__
    - log.error
    - gunicorn.app.base.BaseApplication.load_default_config
    - <builtin>.int
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - stat.S_ISSOCK
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.pidfile.Pidfile.create
    - gunicorn.config.get_default_config_file
    - gunicorn.config.Config.logger_class
    - worker_class.setup
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    - os.rename
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 13
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 499
    functionName: gunicorn.arbiter.Arbiter.reload
    functionSourceFile: gunicorn.arbiter
    functionUses: 1
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - gunicorn.pidfile.Pidfile.__init__
    - <builtin>.sorted
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - <builtin>.hasattr
    - gunicorn.arbiter.Arbiter.spawn_worker
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - gunicorn.arbiter.Arbiter.kill_worker
    - f.read
    - os.WIFSIGNALED
    - gunicorn.app.base.Application.get_config_from_module_name
    - worker.tmp.close
    - module.endswith
    - inspect.isclass
    - <builtin>.sum
    - os.waitpid
    - gunicorn.app.base.BaseApplication.reload
    - os.WEXITSTATUS
    - os.WIFEXITED
    - importlib.metadata.distribution
    - logger_class.install
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.range
    - os.getcwd
    - msg.format
    - gunicorn.config.Config.__init__
    - gunicorn.util.is_ipv6
    - os.path.splitext
    - local_conf.items
    - os.kill
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - socket.inet_pton
    - importlib.util.module_from_spec
    - os.environ.copy
    - k.lower
    - ast.literal_eval
    - setproctitle.setproctitle
    - socket.socket
    - gunicorn.sock.create_sockets
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - os.WTERMSIG
    - tempfile.mkstemp
    - gunicorn.config.Config.worker_class
    - os.remove
    - ast.parse
    - gunicorn.app.base.BaseApplication.wsgi
    - gunicorn.arbiter.Arbiter.setup
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - socket.fromfd
    - gunicorn.arbiter.Arbiter.reap_workers
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - entry_str.rsplit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - module.split
    - random.random
    - gunicorn.debug.Spew.__init__
    - listeners.append
    - os.write
    - parser.has_section
    - msg.splitlines
    - importlib_metadata.distribution
    - os.path.dirname
    - os.close
    - gunicorn.util._setproctitle
    - time.monotonic
    - gunicorn.util.load_entry_point
    - uri.endswith
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - log.debug
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - traceback.format_exc
    - <builtin>.enumerate
    - os.path.join
    - worker.init_process
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.sock.TCPSocket.set_options
    - sys.exit
    - os.path.basename
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - time.sleep
    - <builtin>.min
    - os.chmod
    - traceback.print_exception
    - sys.settrace
    - os.unlink
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - uri.split
    - lnr.close
    - paste.deploy.loadapp
    - gunicorn.sock._sock_type
    - workers.pop
    - sock.setsockopt
    - cfg.items
    - os.stat
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - <builtin>.open
    - uri.startswith
    - os.path.isdir
    - gunicorn.util.load_class
    - gunicorn.pidfile.Pidfile.unlink
    - importlib.machinery.SourceFileLoader
    - gunicorn.sock.BaseSocket.__init__
    - log.error
    - gunicorn.app.base.BaseApplication.load_default_config
    - <builtin>.int
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - stat.S_ISSOCK
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.pidfile.Pidfile.create
    - gunicorn.config.get_default_config_file
    - gunicorn.config.Config.logger_class
    - worker_class.setup
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    - os.rename
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sig
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 879
    functionName: gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 8
    functionsReached:
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 287
    functionName: gunicorn.arbiter.Arbiter.handle_term
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 291
    functionName: gunicorn.arbiter.Arbiter.handle_int
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.stop
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - sock.close
    - os.unlink
    - os.WTERMSIG
    - gunicorn.sock._sock_type
    - gunicorn.arbiter.Arbiter.kill_worker
    - os.WIFSIGNALED
    - worker.tmp.close
    - os.waitpid
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - os.WIFEXITED
    - sock.getsockname
    - <builtin>.isinstance
    - gunicorn.arbiter.Arbiter.reap_workers
    - time.time
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.sock.close_sockets
    - gunicorn.util.is_ipv6
    - os.kill
    - time.sleep
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 296
    functionName: gunicorn.arbiter.Arbiter.handle_quit
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.stop
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - sock.close
    - os.unlink
    - os.WTERMSIG
    - gunicorn.sock._sock_type
    - gunicorn.arbiter.Arbiter.kill_worker
    - os.WIFSIGNALED
    - worker.tmp.close
    - os.waitpid
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - os.WIFEXITED
    - sock.getsockname
    - <builtin>.isinstance
    - gunicorn.arbiter.Arbiter.reap_workers
    - time.time
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.sock.close_sockets
    - gunicorn.util.is_ipv6
    - os.kill
    - time.sleep
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 301
    functionName: gunicorn.arbiter.Arbiter.handle_ttin
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - <builtin>.sorted
    - uri.endswith
    - importlib_metadata.distribution
    - gunicorn.util._setproctitle
    - uri.split
    - setproctitle.setproctitle
    - gunicorn.util.load_entry_point
    - <builtin>.hasattr
    - os.close
    - gunicorn.arbiter.Arbiter.spawn_worker
    - gunicorn.sock.create_sockets
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - workers.pop
    - <builtin>.getattr
    - gunicorn.arbiter.Arbiter.kill_worker
    - sock.setsockopt
    - gunicorn.config.Config.worker_class
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - os.stat
    - os.remove
    - worker.tmp.close
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - traceback.format_exc
    - <builtin>.sum
    - gunicorn.sock.BaseSocket.__init__
    - importlib.metadata.distribution
    - log.error
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - worker.init_process
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.print
    - <builtin>.str
    - worker_class.setup
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - entry_str.rsplit
    - sys.exit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - os.kill
    - random.random
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 309
    functionName: gunicorn.arbiter.Arbiter.handle_ttou
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - <builtin>.sorted
    - uri.endswith
    - importlib_metadata.distribution
    - gunicorn.util._setproctitle
    - uri.split
    - setproctitle.setproctitle
    - gunicorn.util.load_entry_point
    - <builtin>.hasattr
    - os.close
    - gunicorn.arbiter.Arbiter.spawn_worker
    - gunicorn.sock.create_sockets
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - workers.pop
    - <builtin>.getattr
    - gunicorn.arbiter.Arbiter.kill_worker
    - sock.setsockopt
    - gunicorn.config.Config.worker_class
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - os.stat
    - os.remove
    - worker.tmp.close
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - traceback.format_exc
    - <builtin>.sum
    - gunicorn.sock.BaseSocket.__init__
    - importlib.metadata.distribution
    - log.error
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - worker.init_process
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.print
    - <builtin>.str
    - worker_class.setup
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - entry_str.rsplit
    - sys.exit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - os.kill
    - random.random
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 319
    functionName: gunicorn.arbiter.Arbiter.handle_usr1
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.kill_worker
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - os.kill
    - worker.tmp.close
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sig
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 746
    functionName: gunicorn.arbiter.Arbiter.kill_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 8
    functionsReached:
    - <builtin>.list
    - os.kill
    - gunicorn.arbiter.Arbiter.kill_worker
    - worker.tmp.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 330
    functionName: gunicorn.arbiter.Arbiter.handle_usr2
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.reexec
    - os.execvpe
    - <builtin>.len
    - os.chdir
    - os.fork
    - os.getpid
    - lnr.fileno
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 465
    functionName: gunicorn.arbiter.Arbiter.reexec
    functionSourceFile: gunicorn.arbiter
    functionUses: 1
    functionsReached:
    - os.execvpe
    - <builtin>.len
    - os.chdir
    - os.fork
    - os.getpid
    - lnr.fileno
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 339
    functionName: gunicorn.arbiter.Arbiter.handle_winch
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.arbiter.Arbiter.kill_worker
    - gunicorn.arbiter.Arbiter.kill_workers
    - <builtin>.list
    - worker.tmp.close
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getppid
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 46
    functionName: gunicorn.pidfile.Pidfile.rename
    functionSourceFile: gunicorn.pidfile
    functionUses: 3
    functionsReached:
    - os.chmod
    - os.write
    - f.read
    - tempfile.mkstemp
    - <builtin>.open
    - <builtin>.int
    - os.unlink
    - os.getpid
    - os.path.dirname
    - os.close
    - os.kill
    - os.rename
    - os.path.isdir
    - gunicorn.pidfile.Pidfile.unlink
    - gunicorn.pidfile.Pidfile.create
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 365
    functionName: gunicorn.arbiter.Arbiter.wakeup
    functionSourceFile: gunicorn.arbiter
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 974
    functionName: gunicorn.arbiter.Arbiter._stop_control_server
    functionSourceFile: gunicorn.arbiter
    functionUses: 3
    functionsReached:
    - os.path.exists
    - os.unlink
    - gunicorn.ctl.server.ControlSocketServer.stop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signals.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a200d1c0>
    argNames:
    - listeners
    - unlink
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 230
    functionName: gunicorn.sock.close_sockets
    functionSourceFile: gunicorn.sock
    functionUses: 6
    functionsReached:
    - gunicorn.sock._sock_type
    - gunicorn.util.is_ipv6
    - sock.close
    - sock.getsockname
    - os.unlink
    - <builtin>.isinstance
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lnr.fileno
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.chdir
    functionSourceFile: os
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.execvpe
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 59
    functionName: gunicorn.app.base.BaseApplication.reload
    functionSourceFile: gunicorn.app.base
    functionUses: 2
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - parser.has_section
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - os.environ.copy
    - msg.splitlines
    - sys.settrace
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - <builtin>.super
    - importlib.util.spec_from_file_location
    - gunicorn.config.make_settings
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.app.base.BaseApplication.load_default_config
    - os.path.join
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - <builtin>.str
    - setting.copy
    - gunicorn.config.get_default_config_file
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.exit
    - local_conf.items
    - gunicorn.app.base.BaseApplication.do_load_config
    - os.path.basename
    - gunicorn.debug.Spew.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lnr.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 20
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 683
    functionName: gunicorn.arbiter.Arbiter.spawn_worker
    functionSourceFile: gunicorn.arbiter
    functionUses: 8
    functionsReached:
    - importlib.import_module
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - uri.endswith
    - importlib_metadata.distribution
    - gunicorn.util._setproctitle
    - uri.split
    - gunicorn.util.load_entry_point
    - setproctitle.setproctitle
    - <builtin>.hasattr
    - os.close
    - gunicorn.sock.create_sockets
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - <builtin>.getattr
    - sock.setsockopt
    - gunicorn.config.Config.worker_class
    - <builtin>.len
    - os.stat
    - os.remove
    - worker.tmp.close
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - traceback.format_exc
    - gunicorn.sock.BaseSocket.__init__
    - importlib.metadata.distribution
    - log.error
    - os.fork
    - sock.getsockname
    - worker.init_process
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.print
    - <builtin>.range
    - <builtin>.str
    - worker_class.setup
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - entry_str.rsplit
    - sys.exit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: time.monotonic
    functionSourceFile: time
    functionUses: 58
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 60
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worker.tmp.last_update
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pid
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 755
    functionName: gunicorn.arbiter.Arbiter.kill_worker
    functionSourceFile: gunicorn.arbiter
    functionUses: 15
    functionsReached:
    - os.kill
    - worker.tmp.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.waitpid
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.WIFEXITED
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.WEXITSTATUS
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.WIFSIGNALED
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.WTERMSIG
    functionSourceFile: os
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worker.tmp.close
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 734
    functionName: gunicorn.arbiter.Arbiter.spawn_workers
    functionSourceFile: gunicorn.arbiter
    functionUses: 7
    functionsReached:
    - importlib.import_module
    - sibling.tmp.close
    - <builtin>.list
    - sys.stderr.flush
    - uri.endswith
    - importlib_metadata.distribution
    - gunicorn.util._setproctitle
    - uri.split
    - gunicorn.util.load_entry_point
    - setproctitle.setproctitle
    - <builtin>.hasattr
    - os.close
    - gunicorn.arbiter.Arbiter.spawn_worker
    - gunicorn.sock.create_sockets
    - socket.socket
    - <builtin>.super
    - log.debug
    - gunicorn.sock._sock_type
    - <builtin>.getattr
    - sock.setsockopt
    - gunicorn.config.Config.worker_class
    - <builtin>.len
    - os.stat
    - os.remove
    - worker.tmp.close
    - uri.startswith
    - inspect.isclass
    - gunicorn.util.load_class
    - os.path.exists
    - traceback.format_exc
    - gunicorn.sock.BaseSocket.__init__
    - importlib.metadata.distribution
    - log.error
    - os.fork
    - sock.getsockname
    - worker.init_process
    - socket.fromfd
    - stat.S_ISSOCK
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.print
    - <builtin>.str
    - worker_class.setup
    - msg.format
    - gunicorn.util.is_ipv6
    - gunicorn.sock.TCPSocket.set_options
    - entry_str.rsplit
    - sys.exit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - random.random
    - time.sleep
    - listeners.append
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.arbiter.Arbiter.manage_workers.<lambda1>
    functionSourceFile: gunicorn.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: workers.pop
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.sum
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 119
    functionName: gunicorn.config.Config.worker_class
    functionSourceFile: gunicorn.config
    functionUses: 9
    functionsReached:
    - worker_class.setup
    - importlib.import_module
    - <builtin>.getattr
    - gunicorn.util.load_class
    - <builtin>.len
    - importlib.metadata.distribution
    - entry_str.rsplit
    - components.pop
    - uri.endswith
    - importlib_metadata.distribution
    - uri.split
    - gunicorn.util.load_entry_point
    - uri.startswith
    - inspect.isclass
    - <builtin>.hasattr
    - <builtin>.isinstance
    - traceback.format_exc
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sibling.tmp.close
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worker.init_process
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: random.random
    functionSourceFile: random
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.kill
    functionSourceFile: os
    functionUses: 48
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 782
    functionName: gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    functionSourceFile: gunicorn.arbiter
    functionUses: 6
    functionsReached:
    - tempfile.gettempdir
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.gettempdir
    functionSourceFile: tempfile
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.join
    functionSourceFile: os
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 793
    functionName: gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    functionSourceFile: gunicorn.arbiter
    functionUses: 5
    functionsReached:
    - f.read
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - <builtin>.open
    - os.path.join
    - <builtin>.int
    - os.unlink
    - os.kill
    - tempfile.gettempdir
    - os.path.exists
    - <builtin>.range
    - time.sleep
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.read
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1c33640>
    - <ast.Constant object at 0x7f99a1c33070>
    argNames:
    - self
    - cfg
    - log
    - socket_path
    - pidfile
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 66
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.__init__
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 5
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.set
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - tempfile.mkdtemp
    - <builtin>.len
    - os.path.join
    - gunicorn.dirty.app.parse_dirty_app_spec
    - import_path.rsplit
    - <builtin>.int
    - os.getpid
    - gunicorn.dirty.app.get_app_workers_attribute
    - <builtin>.isinstance
    - spec.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 657
    functionName: gunicorn.dirty.client.set_dirty_socket_path
    functionSourceFile: gunicorn.dirty.client
    functionUses: 5
    functionsReached:
    - gunicorn.dirty.stash.set_stash_socket_path
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 234
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.run
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 5
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - f.write
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - os.listdir
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.run
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - gunicorn.dirty.app.load_dirty_app
    - asyncio.new_event_loop
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - os.rmdir
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - <builtin>.open
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - <builtin>.str
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 941
    functionName: gunicorn.arbiter.Arbiter._get_control_socket_path
    functionSourceFile: gunicorn.arbiter
    functionUses: 4
    functionsReached:
    - os.stat
    - os.path.join
    - gunicorn.util.getcwd
    - os.path.isabs
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isabs
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1b43430>
    argNames:
    - self
    - arbiter
    - socket_path
    - socket_mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: gunicorn.ctl.server.ControlSocketServer.__init__
    functionSourceFile: gunicorn.ctl.server
    functionUses: 4
    functionsReached:
    - gunicorn.ctl.handlers.CommandHandlers.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: gunicorn.ctl.server.ControlSocketServer.start
    functionSourceFile: gunicorn.ctl.server
    functionUses: 4
    functionsReached:
    - threading.Thread
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 61
    functionName: gunicorn.ctl.server.ControlSocketServer.stop
    functionSourceFile: gunicorn.ctl.server
    functionUses: 4
    functionsReached:
    - os.path.exists
    - os.unlink
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.sock
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a196f370>
    argNames:
    - self
    - address
    - conf
    - log
    - fd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 21
    functionName: gunicorn.sock.BaseSocket.__init__
    functionSourceFile: gunicorn.sock
    functionUses: 11
    functionsReached:
    - sock.setsockopt
    - gunicorn.sock.TCPSocket.set_options
    - os.close
    - socket.fromfd
    - socket.socket
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.fromfd
    functionSourceFile: socket
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20cfd30>
    argNames:
    - self
    - sock
    - bound
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: gunicorn.sock.TCPSocket.set_options
    functionSourceFile: gunicorn.sock
    functionUses: 12
    functionsReached:
    - <builtin>.super
    - sock.setsockopt
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 36
    functionName: gunicorn.sock.BaseSocket.__str__
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: gunicorn.sock.BaseSocket.__getattr__
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2233d60>
    argNames:
    - self
    - sock
    - bound
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 42
    functionName: gunicorn.sock.BaseSocket.set_options
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - os.chown
    - sock.setsockopt
    - sock.bind
    - os.umask
    - sock.setblocking
    - sock.listen
    - gunicorn.util.chown
    - gunicorn.sock.UnixSocket.bind
    - <builtin>.hasattr
    - sock.set_inheritable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.setsockopt
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sock
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 145
    functionName: gunicorn.sock.UnixSocket.bind
    functionSourceFile: gunicorn.sock
    functionUses: 1
    functionsReached:
    - os.chown
    - sock.bind
    - os.umask
    - gunicorn.util.chown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.set_inheritable
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.listen
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - sock
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: gunicorn.sock.BaseSocket.bind
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - sock.bind
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.bind
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: gunicorn.sock.BaseSocket.close
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: gunicorn.sock.BaseSocket.get_backlog
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 84
    functionName: gunicorn.sock.TCPSocket.__str__
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: gunicorn.sock.TCPSocket.get_backlog
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - struct.unpack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.unpack
    functionSourceFile: struct
    functionUses: 83
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 119
    functionName: gunicorn.sock.TCP6Socket.__str__
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19ffd30>
    argNames:
    - self
    - addr
    - conf
    - log
    - fd
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: gunicorn.sock.UnixSocket.__init__
    functionSourceFile: gunicorn.sock
    functionUses: 11
    functionsReached:
    - os.stat
    - os.remove
    - stat.S_ISSOCK
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stat.S_ISSOCK
    functionSourceFile: stat
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.remove
    functionSourceFile: os
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: gunicorn.sock.UnixSocket.__str__
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - addr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 152
    functionName: gunicorn.sock._sock_type
    functionSourceFile: gunicorn.sock
    functionUses: 16
    functionsReached:
    - gunicorn.util.is_ipv6
    - <builtin>.isinstance
    - socket.inet_pton
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.getsockname
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: listeners.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.error
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.format
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.debug
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - conf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 238
    functionName: gunicorn.sock._get_alpn_protocols
    functionSourceFile: gunicorn.sock
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.http2.is_http2_available
    - <builtin>.int
    - version_str.split
    - alpn_protocols.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: gunicorn.http2.is_http2_available
    functionSourceFile: gunicorn.http2
    functionUses: 5
    functionsReached:
    - version_str.split
    - <builtin>.getattr
    - <builtin>.tuple
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: alpn_protocols.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - conf
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 267
    functionName: gunicorn.sock.ssl_context
    functionSourceFile: gunicorn.sock
    functionUses: 11
    functionsReached:
    - conf.ssl_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 268
    functionName: gunicorn.sock.ssl_context.default_ssl_context_factory
    functionSourceFile: gunicorn.sock
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.http2.is_http2_available
    - context.load_cert_chain
    - ssl.create_default_context
    - <builtin>.int
    - version_str.split
    - context.set_ciphers
    - gunicorn.sock._get_alpn_protocols
    - alpn_protocols.append
    - context.set_alpn_protocols
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl.create_default_context
    functionSourceFile: ssl
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.load_cert_chain
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_ciphers
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: context.set_alpn_protocols
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conf.ssl_context
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - conf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 285
    functionName: gunicorn.sock.ssl_wrap_socket
    functionSourceFile: gunicorn.sock
    functionUses: 6
    functionsReached:
    - conf.ssl_context
    - gunicorn.sock.ssl_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - ssl_socket
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 292
    functionName: gunicorn.sock.get_negotiated_protocol
    functionSourceFile: gunicorn.sock
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - ssl_socket.selected_alpn_protocol
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl_socket.selected_alpn_protocol
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - ssl_socket
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 308
    functionName: gunicorn.sock.is_http2_negotiated
    functionSourceFile: gunicorn.sock
    functionUses: 1
    functionsReached:
    - <builtin>.isinstance
    - gunicorn.sock.get_negotiated_protocol
    - ssl_socket.selected_alpn_protocol
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2
    functionSourceFile: gunicorn.http2
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: version_str.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.tuple
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: gunicorn.http2.get_h2_version
    functionSourceFile: gunicorn.http2
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.http2.is_http2_available
    - <builtin>.int
    - version_str.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 54
    functionName: gunicorn.http2.get_http2_connection_class
    functionSourceFile: gunicorn.http2
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.http2.is_http2_available
    - <builtin>.int
    - version_str.split
    linkageType: pythonLinkage
    raised:
    - HTTP2NotAvailable
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 67
    functionName: gunicorn.http2.get_async_http2_connection_class
    functionSourceFile: gunicorn.http2
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.http2.is_http2_available
    - <builtin>.int
    - version_str.split
    linkageType: pythonLinkage
    raised:
    - HTTP2NotAvailable
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2.connection
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: gunicorn.http2.connection._import_h2
    functionSourceFile: gunicorn.http2.connection
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2NotAvailable
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - cfg
    - sock
    - client_addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.__init__
    functionSourceFile: gunicorn.http2.connection
    functionUses: 8
    functionsReached:
    - io.BytesIO
    - _h2.H2Connection
    - gunicorn.http2.connection._import_h2
    - _h2_config.H2Configuration
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _h2_config.H2Configuration
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _h2.H2Connection
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO
    functionSourceFile: io
    functionUses: 69
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.initiate_connection
    functionSourceFile: gunicorn.http2.connection
    functionUses: 2
    functionsReached:
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 627
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2ConnectionError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1de34c0>
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 122
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.receive_data
    functionSourceFile: gunicorn.http2.connection
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - stream.receive_data
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received
    - stream.reset
    - <builtin>.getattr
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - gunicorn.http2.request.HTTP2Request.__init__
    - <builtin>.len
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_event
    - name.upper
    - uri.startswith
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - stream.update_priority
    - stream.receive_trailers
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - completed_requests.append
    - gunicorn.http2.connection.HTTP2ServerConnection.close
    - <builtin>.isinstance
    - stream.get_regular_headers
    - parts._replace
    - pseudo.get
    - io.BytesIO
    - stream.get_pseudo_headers
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised:
    - HTTP2ConnectionError
    - HTTP2ProtocolError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d01040>
    - <ast.Constant object at 0x7f99a1d01520>
    argNames:
    - self
    - error_code
    - last_stream_id
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 605
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.close
    functionSourceFile: gunicorn.http2.connection
    functionUses: 5
    functionsReached:
    - <builtin>.max
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 4
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 188
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_event
    functionSourceFile: gunicorn.http2.connection
    functionUses: 3
    functionsReached:
    - <builtin>.max
    - stream.receive_data
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received
    - stream.reset
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - gunicorn.http2.request.HTTP2Request.__init__
    - <builtin>.len
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received
    - name.upper
    - uri.startswith
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - stream.update_priority
    - stream.receive_trailers
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - gunicorn.http2.connection.HTTP2ServerConnection.close
    - <builtin>.isinstance
    - stream.get_regular_headers
    - parts._replace
    - pseudo.get
    - io.BytesIO
    - stream.get_pseudo_headers
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: completed_requests.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 226
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 243
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - stream.receive_data
    - <builtin>.len
    - gunicorn.http2.connection.HTTP2ServerConnection.close
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 277
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - stream.get_regular_headers
    - urllib.parse.urlsplit
    - gunicorn.http2.request.HTTP2Request.__init__
    - parts._replace
    - pseudo.get
    - <builtin>.len
    - gunicorn.util.split_request_uri
    - io.BytesIO
    - name.upper
    - stream.get_pseudo_headers
    - uri.startswith
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 298
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - stream.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 340
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - stream.update_priority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 320
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - stream.get_regular_headers
    - stream.receive_trailers
    - urllib.parse.urlsplit
    - gunicorn.http2.request.HTTP2Request.__init__
    - parts._replace
    - pseudo.get
    - <builtin>.len
    - gunicorn.util.split_request_uri
    - io.BytesIO
    - name.upper
    - stream.get_pseudo_headers
    - uri.startswith
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    - connection
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: gunicorn.http2.stream.HTTP2Stream.__init__
    functionSourceFile: gunicorn.http2.stream
    functionUses: 10
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2316bb0>
    argNames:
    - self
    - headers
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 100
    functionName: gunicorn.http2.stream.HTTP2Stream.receive_headers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 10
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.receive_data
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - stream
    - cfg
    - peer_addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: gunicorn.http2.request.HTTP2Request.__init__
    functionSourceFile: gunicorn.http2.request
    functionUses: 12
    functionsReached:
    - stream.get_regular_headers
    - urllib.parse.urlsplit
    - parts._replace
    - pseudo.get
    - <builtin>.len
    - gunicorn.util.split_request_uri
    - io.BytesIO
    - name.upper
    - stream.get_pseudo_headers
    - uri.startswith
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.reset
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.receive_trailers
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.update_priority
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    - status
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 354
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.send_informational
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached:
    - response_headers.append
    - name.lower
    - <builtin>.str
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised:
    - HTTP2Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.lower
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response_headers.append
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b00370>
    argNames:
    - self
    - stream_id
    - status
    - headers
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 386
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.send_response
    functionSourceFile: gunicorn.http2.connection
    functionUses: 4
    functionsReached:
    - sel.select
    - <builtin>.isinstance
    - <builtin>.range
    - stream.send_data
    - response_headers.append
    - <builtin>.len
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - stream.close
    - sel.register
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - sel.close
    - selectors.DefaultSelector
    - <builtin>.min
    - gunicorn.http2.connection.HTTP2ServerConnection.send_data
    - name.lower
    - stream.send_headers
    - <builtin>.str
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.send_headers
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a220adf0>
    argNames:
    - self
    - stream_id
    - data
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 488
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.send_data
    functionSourceFile: gunicorn.http2.connection
    functionUses: 5
    functionsReached:
    - sel.select
    - stream.send_data
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - <builtin>.len
    - stream.close
    - sel.register
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - sel.close
    - <builtin>.min
    - <builtin>.isinstance
    - <builtin>.range
    - selectors.DefaultSelector
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.close
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 642
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 430
    functionName: gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    functionSourceFile: gunicorn.http2.connection
    functionUses: 6
    functionsReached:
    - sel.select
    - sel.register
    - sel.close
    - <builtin>.isinstance
    - <builtin>.range
    - selectors.DefaultSelector
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: selectors.DefaultSelector
    functionSourceFile: selectors
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.register
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.select
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sel.close
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.send_data
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    - trailers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 532
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.send_trailers
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached:
    - lname.startswith
    - stream.send_trailers
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - stream.close
    - trailer_headers.append
    - name.lower
    - <builtin>.str
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    linkageType: pythonLinkage
    raised:
    - HTTP2Error
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lname.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: trailer_headers.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.send_trailers
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20da2b0>
    argNames:
    - self
    - stream_id
    - status_code
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 576
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.send_error
    functionSourceFile: gunicorn.http2.connection
    functionUses: 2
    functionsReached:
    - stream.send_data
    - sel.register
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - sel.close
    - gunicorn.http2.connection.HTTP2ServerConnection.send_data
    - sel.select
    - response_headers.append
    - <builtin>.len
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - gunicorn.http2.connection.HTTP2ServerConnection.send_response
    - headers.append
    - stream.send_headers
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - message.encode
    - <builtin>.isinstance
    - <builtin>.range
    - selectors.DefaultSelector
    - <builtin>.str
    - stream.close
    - name.lower
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message.encode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: headers.append
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d018b0>
    argNames:
    - self
    - stream_id
    - error_code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 591
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.reset_stream
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached:
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - stream.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.max
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 638
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.is_closed
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 650
    functionName: gunicorn.http2.connection.HTTP2ServerConnection.__repr__
    functionSourceFile: gunicorn.http2.connection
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2.stream
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: enum.auto
    functionSourceFile: enum
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.http2.stream.StreamState
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - enum.auto
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 75
    functionName: gunicorn.http2.stream.HTTP2Stream.is_client_stream
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 80
    functionName: gunicorn.http2.stream.HTTP2Stream.is_server_stream
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 85
    functionName: gunicorn.http2.stream.HTTP2Stream.can_receive
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 93
    functionName: gunicorn.http2.stream.HTTP2Stream.can_send
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 266
    functionName: gunicorn.http2.stream.HTTP2Stream._half_close_remote
    functionSourceFile: ''
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20fac10>
    argNames:
    - self
    - data
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 124
    functionName: gunicorn.http2.stream.HTTP2Stream.receive_data
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - io.BytesIO.write
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.write
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - trailers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: gunicorn.http2.stream.HTTP2Stream.receive_trailers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22207f0>
    argNames:
    - self
    - headers
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: gunicorn.http2.stream.HTTP2Stream.send_headers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_local
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 254
    functionName: gunicorn.http2.stream.HTTP2Stream._half_close_local
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2220fd0>
    argNames:
    - self
    - data
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 185
    functionName: gunicorn.http2.stream.HTTP2Stream.send_data
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_local
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - trailers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 205
    functionName: gunicorn.http2.stream.HTTP2Stream.send_trailers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream._half_close_local
    linkageType: pythonLinkage
    raised:
    - HTTP2StreamError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2271040>
    argNames:
    - self
    - error_code
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 223
    functionName: gunicorn.http2.stream.HTTP2Stream.reset
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 233
    functionName: gunicorn.http2.stream.HTTP2Stream.close
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22713a0>
    - <ast.Constant object at 0x7f99a2271be0>
    - <ast.Constant object at 0x7f99a2271cd0>
    argNames:
    - self
    - weight
    - depends_on
    - exclusive
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 239
    functionName: gunicorn.http2.stream.HTTP2Stream.update_priority
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: gunicorn.http2.stream.HTTP2Stream.get_request_body
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - io.BytesIO.getvalue
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.getvalue
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 286
    functionName: gunicorn.http2.stream.HTTP2Stream.get_pseudo_headers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.startswith
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 299
    functionName: gunicorn.http2.stream.HTTP2Stream.get_regular_headers
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached:
    - name.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 311
    functionName: gunicorn.http2.stream.HTTP2Stream.__repr__
    functionSourceFile: gunicorn.http2.stream
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2.request
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: gunicorn.http2.request.HTTP2Body.__init__
    functionSourceFile: gunicorn.http2.request
    functionUses: 13
    functionsReached:
    - io.BytesIO
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20da550>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 33
    functionName: gunicorn.http2.request.HTTP2Body.read
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - io.BytesIO.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.read
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20dad90>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: gunicorn.http2.request.HTTP2Body.readline
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - io.BytesIO.readline
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.readline
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20dac10>
    argNames:
    - self
    - hint
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: gunicorn.http2.request.HTTP2Body.readlines
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - io.BytesIO.readlines
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.readlines
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 70
    functionName: gunicorn.http2.request.HTTP2Body.__iter__
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - <builtin>.iter
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.iter
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 74
    functionName: gunicorn.http2.request.HTTP2Body.__len__
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: gunicorn.http2.request.HTTP2Body.close
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - io.BytesIO.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.BytesIO.close
    functionSourceFile: io
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.get_pseudo_headers
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pseudo.get
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.get_regular_headers
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.upper
    functionSourceFile: <builtin>
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.get_request_body
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 168
    functionName: gunicorn.http2.request.HTTP2Request.force_close
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 172
    functionName: gunicorn.http2.request.HTTP2Request.should_close
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 186
    functionName: gunicorn.http2.request.HTTP2Request.get_header
    functionSourceFile: gunicorn.http2.request
    functionUses: 2
    functionsReached:
    - name.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 202
    functionName: gunicorn.http2.request.HTTP2Request.content_length
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - name.upper
    - gunicorn.http2.request.HTTP2Request.get_header
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 217
    functionName: gunicorn.http2.request.HTTP2Request.content_type
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached:
    - name.upper
    - gunicorn.http2.request.HTTP2Request.get_header
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 225
    functionName: gunicorn.http2.request.HTTP2Request.__repr__
    functionSourceFile: gunicorn.http2.request
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2.async_connection
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 31
    functionName: gunicorn.http2.async_connection._import_h2
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2NotAvailable
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - cfg
    - reader
    - writer
    - client_addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.__init__
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 2
    functionsReached:
    - _h2.H2Connection
    - _h2_config.H2Configuration
    - asyncio.Queue
    - gunicorn.http2.async_connection._import_h2
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.Queue
    functionSourceFile: asyncio
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.initiate_connection
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 2
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 560
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - HTTP2ConnectionError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19ff430>
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 122
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.receive_data
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - stream.receive_data
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended
    - stream.reset
    - <builtin>.getattr
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - <builtin>.len
    - gunicorn.http2.request.HTTP2Request.__init__
    - asyncio.wait_for
    - name.upper
    - uri.startswith
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received
    - stream.update_priority
    - stream.receive_trailers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - completed_requests.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.close
    - <builtin>.isinstance
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - stream.get_regular_headers
    - parts._replace
    - pseudo.get
    - io.BytesIO
    - stream.get_pseudo_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_event
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised:
    - HTTP2ConnectionError
    - HTTP2ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.wait_for
    functionSourceFile: asyncio
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2238ee0>
    - <ast.Constant object at 0x7f99a2238580>
    argNames:
    - self
    - error_code
    - last_stream_id
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 538
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.close
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 3
    functionsReached:
    - <builtin>.max
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 4
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 194
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_event
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 3
    functionsReached:
    - stream.receive_data
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended
    - stream.reset
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - <builtin>.len
    - gunicorn.http2.request.HTTP2Request.__init__
    - name.upper
    - uri.startswith
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received
    - stream.update_priority
    - stream.receive_trailers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - <builtin>.isinstance
    - stream.get_regular_headers
    - parts._replace
    - pseudo.get
    - io.BytesIO
    - stream.get_pseudo_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 232
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 244
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - stream.receive_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 273
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - stream.get_regular_headers
    - urllib.parse.urlsplit
    - gunicorn.http2.request.HTTP2Request.__init__
    - parts._replace
    - pseudo.get
    - <builtin>.len
    - gunicorn.util.split_request_uri
    - io.BytesIO
    - name.upper
    - stream.get_pseudo_headers
    - uri.startswith
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 284
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - stream.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 307
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - stream.update_priority
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 292
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated
    functionSourceFile: ''
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - event
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 296
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - stream.get_regular_headers
    - stream.receive_trailers
    - urllib.parse.urlsplit
    - gunicorn.http2.request.HTTP2Request.__init__
    - parts._replace
    - pseudo.get
    - <builtin>.len
    - gunicorn.util.split_request_uri
    - io.BytesIO
    - name.upper
    - stream.get_pseudo_headers
    - uri.startswith
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    - status
    - headers
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 321
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.send_informational
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 1
    functionsReached:
    - response_headers.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.str
    - name.lower
    linkageType: pythonLinkage
    raised:
    - HTTP2Error
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1bd7190>
    argNames:
    - self
    - stream_id
    - status
    - headers
    - body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 353
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 4
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - <builtin>.range
    - stream.send_data
    - response_headers.append
    - <builtin>.len
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - stream.close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - asyncio.wait_for
    - stream.send_headers
    - <builtin>.min
    - <builtin>.isinstance
    - name.lower
    - <builtin>.str
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a23c14c0>
    argNames:
    - self
    - stream_id
    - data
    - end_stream
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 433
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 5
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - <builtin>.range
    - stream.send_data
    - <builtin>.len
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - stream.close
    - asyncio.wait_for
    - <builtin>.isinstance
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 576
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    functionSourceFile: ''
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 393
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 6
    functionsReached:
    - asyncio.wait_for
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 7
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - stream_id
    - trailers
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 476
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.send_trailers
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 3
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - stream.send_trailers
    - name.lower
    - lname.startswith
    - stream.close
    - trailer_headers.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - HTTP2Error
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20e39d0>
    argNames:
    - self
    - stream_id
    - status_code
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 520
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.send_error
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 3
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response
    - <builtin>.range
    - stream.send_data
    - response_headers.append
    - <builtin>.len
    - message.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - stream.close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - asyncio.wait_for
    - headers.append
    - <builtin>.min
    - <builtin>.isinstance
    - name.lower
    - stream.send_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2238790>
    argNames:
    - self
    - stream_id
    - error_code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 529
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.reset_stream
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 0
    functionsReached:
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - stream.reset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 572
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.is_closed
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 580
    functionName: gunicorn.http2.async_connection.AsyncHTTP2Connection.__repr__
    functionSourceFile: gunicorn.http2.async_connection
    functionUses: 0
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http2.errors
    functionSourceFile: gunicorn.http2.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19ff7f0>
    - <ast.Constant object at 0x7f99a19fffa0>
    argNames:
    - self
    - message
    - error_code
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: gunicorn.http2.errors.HTTP2Error.__init__
    functionSourceFile: gunicorn.http2.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b55e50>
    - <ast.Constant object at 0x7f99a2b55fa0>
    argNames:
    - self
    - stream_id
    - message
    - error_code
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 125
    functionName: gunicorn.http2.errors.HTTP2StreamError.__init__
    functionSourceFile: gunicorn.http2.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 129
    functionName: gunicorn.http2.errors.HTTP2StreamError.__str__
    functionSourceFile: gunicorn.http2.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22336d0>
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 144
    functionName: gunicorn.http2.errors.HTTP2NotAvailable.__init__
    functionSourceFile: gunicorn.http2.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.frozenset
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a0b1aac0>
    argNames:
    - ignore
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 28
    functionName: gunicorn.config.make_settings
    functionSourceFile: gunicorn.config
    functionUses: 11
    functionsReached:
    - setting.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: setting.copy
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - _
    - x
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 39
    functionName: gunicorn.config.auto_int
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - x.replace
    - re.match
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: x.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f999fb65e20>
    - <ast.Constant object at 0x7f999fb65df0>
    argNames:
    - self
    - usage
    - prog
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 48
    functionName: gunicorn.config.Config.__init__
    functionSourceFile: gunicorn.config
    functionUses: 10
    functionsReached:
    - os.path.basename
    - setting.copy
    - gunicorn.config.make_settings
    - os.environ.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.basename
    functionSourceFile: os
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.environ.copy
    functionSourceFile: os
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: gunicorn.config.Config.__str__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - lines.append
    - <builtin>.len
    - <builtin>.sorted
    - <builtin>.callable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.append
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 66
    functionName: gunicorn.config.Config.__getattr__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: gunicorn.config.Config.__setattr__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: gunicorn.config.Config.set
    functionSourceFile: gunicorn.config
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - AttributeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: gunicorn.config.Config.get_cmd_args_from_env
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - shlex.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: shlex.split
    functionSourceFile: shlex
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 88
    functionName: gunicorn.config.Config.parser
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - parser.add_argument
    - <builtin>.sorted
    - argparse.ArgumentParser
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: argparse.ArgumentParser
    functionSourceFile: argparse
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.add_argument
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 107
    functionName: gunicorn.config.Config.worker_class_str
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - uri.endswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uri.endswith
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worker_class.setup
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 133
    functionName: gunicorn.config.Config.address
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.util.parse_address
    - netloc.split
    - re.split
    - netloc.startswith
    - host.lower
    - <builtin>.int
    - <builtin>.isinstance
    - re.match
    - <builtin>.str
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: gunicorn.config.Config.uid
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: gunicorn.config.Config.gid
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 146
    functionName: gunicorn.config.Config.proc_name
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: logger_class.install
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 176
    functionName: gunicorn.config.Config.is_ssl
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 179
    functionName: gunicorn.config.Config.forwarded_allow_networks
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - ipaddress.ip_network
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ipaddress.ip_network
    functionSourceFile: ipaddress
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 189
    functionName: gunicorn.config.Config.proxy_allow_networks
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - ipaddress.ip_network
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 200
    functionName: gunicorn.config.Config.ssl_options
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - value.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 208
    functionName: gunicorn.config.Config.env
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - s.split
    - <builtin>.str
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 227
    functionName: gunicorn.config.Config.sendfile
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 238
    functionName: gunicorn.config.Config.reuse_port
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 242
    functionName: gunicorn.config.Config.paste_global_conf
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - re.split
    - k.replace
    - v.replace
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: k.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - cls
    - name
    - bases
    - attrs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 262
    functionName: gunicorn.config.SettingMeta.__new__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - new_class.fmt_desc
    - <builtin>.len
    - KNOWN_SETTINGS.append
    - <builtin>.isinstance
    - <builtin>.staticmethod
    - <builtin>.super
    - attrs.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.staticmethod
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: attrs.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: new_class.fmt_desc
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: KNOWN_SETTINGS.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - desc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 276
    functionName: gunicorn.config.SettingMeta.fmt_desc
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - desc.splitlines
    - textwrap.dedent
    - <builtin>.setattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.setattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: desc.splitlines
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 297
    functionName: gunicorn.config.Setting.__init__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parser
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 301
    functionName: gunicorn.config.Setting.add_option
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - parser.add_argument
    - kwargs.pop
    - <builtin>.tuple
    - help_txt.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: help_txt.replace
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 331
    functionName: gunicorn.config.Setting.copy
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 334
    functionName: gunicorn.config.Setting.get
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - val
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 337
    functionName: gunicorn.config.Setting.set
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.callable
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - other
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 342
    functionName: gunicorn.config.Setting.__lt__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 347
    functionName: gunicorn.config.Setting.__repr__
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.id
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.id
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 359
    functionName: gunicorn.config.validate_bool
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.lower
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 375
    functionName: gunicorn.config.validate_dict
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 381
    functionName: gunicorn.config.validate_pos_int
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 392
    functionName: gunicorn.config.validate_http2_frame_size
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 405
    functionName: gunicorn.config.validate_ssl_version
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - sys.stderr.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.stderr.write
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 411
    functionName: gunicorn.config.validate_string
    functionSourceFile: gunicorn.config
    functionUses: 7
    functionsReached:
    - val.strip
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.strip
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 419
    functionName: gunicorn.config.validate_file_exists
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - os.path.exists
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 427
    functionName: gunicorn.config.validate_list_string
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - val.strip
    - <builtin>.isinstance
    - gunicorn.config.validate_string
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 438
    functionName: gunicorn.config.validate_list_of_existing_files
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - gunicorn.config.validate_string
    - gunicorn.config.validate_list_string
    - gunicorn.config.validate_file_exists
    - os.path.exists
    - val.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 442
    functionName: gunicorn.config.validate_string_to_addr_list
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - v.strip
    - val.split
    - <builtin>.isinstance
    - ipaddress.ip_network
    - gunicorn.config.validate_string_to_list
    - gunicorn.config.validate_string
    - val.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 457
    functionName: gunicorn.config.validate_string_to_list
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - v.strip
    - val.split
    - <builtin>.isinstance
    - gunicorn.config.validate_string
    - val.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.strip
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.split
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 466
    functionName: gunicorn.config.validate_class
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - inspect.isfunction
    - <builtin>.isinstance
    - inspect.ismethod
    - gunicorn.config.validate_string
    - inspect.isclass
    - val.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isfunction
    functionSourceFile: inspect
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.ismethod
    functionSourceFile: inspect
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - arity
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 474
    functionName: gunicorn.config.validate_callable
    functionSourceFile: gunicorn.config
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 475
    functionName: gunicorn.config.validate_callable._validate_callable
    functionSourceFile: gunicorn.config
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - inspect.signature
    - val.rsplit
    - <builtin>.__import__
    - sig.parameters.values
    - <builtin>.isinstance
    - <builtin>.callable
    - gunicorn.util.get_arity
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.rsplit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.__import__
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 498
    functionName: gunicorn.config.validate_user
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.isdigit
    - pwd.getpwnam
    - <builtin>.int
    - os.geteuid
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.geteuid
    functionSourceFile: os
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: val.isdigit
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pwd.getpwnam
    functionSourceFile: pwd
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 512
    functionName: gunicorn.config.validate_group
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.getegid
    - grp.getgrnam
    - val.isdigit
    - <builtin>.int
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.getegid
    functionSourceFile: os
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: grp.getgrnam
    functionSourceFile: grp
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 527
    functionName: gunicorn.config.validate_post_request
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - inspect.signature
    - gunicorn.config.validate_callable
    - val.rsplit
    - <builtin>.__import__
    - gunicorn.config.validate_callable._validate_callable
    - sig.parameters.values
    - <builtin>.isinstance
    - <builtin>.callable
    - gunicorn.util.get_arity
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.config.validate_post_request.<lambda1>
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.config.validate_post_request.<lambda2>
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 541
    functionName: gunicorn.config.validate_chdir
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.path.abspath
    - <builtin>.isinstance
    - os.stat
    - os.path.join
    - gunicorn.config.validate_string
    - gunicorn.util.getcwd
    - os.path.exists
    - val.strip
    - os.path.normpath
    - os.getcwd
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.normpath
    functionSourceFile: os
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.abspath
    functionSourceFile: os
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 555
    functionName: gunicorn.config.validate_statsd_address
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.util.parse_address
    - <builtin>.isinstance
    - netloc.split
    - re.split
    - unix_hostname_regression.group
    - netloc.startswith
    - <builtin>.int
    - host.lower
    - gunicorn.config.validate_string
    - val.strip
    - re.match
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unix_hostname_regression.group
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 576
    functionName: gunicorn.config.validate_reload_engine
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 583
    functionName: gunicorn.config.get_default_config_file
    functionSourceFile: gunicorn.config
    functionUses: 11
    functionsReached:
    - os.path.exists
    - os.getcwd
    - os.path.abspath
    - os.path.join
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.Bind
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.Workers
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.environ.get
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: gunicorn.config.Chdir
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.stat
    - gunicorn.util.getcwd
    - os.getcwd
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.User
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.geteuid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.Group
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.getegid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.ForwardedAllowIPS
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.OnStarting
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - server
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1834
    functionName: gunicorn.config.OnStarting.on_starting
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.OnReload
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - server
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1850
    functionName: gunicorn.config.OnReload.on_reload
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.WhenReady
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - server
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1866
    functionName: gunicorn.config.WhenReady.when_ready
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.Prefork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - server
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1882
    functionName: gunicorn.config.Prefork.pre_fork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.Postfork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - server
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1899
    functionName: gunicorn.config.Postfork.post_fork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.PostWorkerInit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - worker
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1916
    functionName: gunicorn.config.PostWorkerInit.post_worker_init
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.WorkerInt
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - worker
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1934
    functionName: gunicorn.config.WorkerInt.worker_int
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.WorkerAbort
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - worker
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1952
    functionName: gunicorn.config.WorkerAbort.worker_abort
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.PreExec
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - server
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 1972
    functionName: gunicorn.config.PreExec.pre_exec
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.PreRequest
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - worker
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1988
    functionName: gunicorn.config.PreRequest.pre_request
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - worker.log.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: worker.log.debug
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - worker
    - req
    - environ
    - resp
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2005
    functionName: gunicorn.config.PostRequest.post_request
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.PostRequest
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.ChildExit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - server
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2023
    functionName: gunicorn.config.ChildExit.child_exit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.WorkerExit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - server
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2042
    functionName: gunicorn.config.WorkerExit.worker_exit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.NumWorkersChanged
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - server
    - new_value
    - old_value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2059
    functionName: gunicorn.config.NumWorkersChanged.nworkers_changed
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.OnExit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - server
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2078
    functionName: gunicorn.config.OnExit.on_exit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.NewSSLContext
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - config
    - default_ssl_context_factory
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 2095
    functionName: gunicorn.config.NewSSLContext.ssl_context
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2124
    functionName: gunicorn.config.validate_proxy_protocol
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.SSLVersion
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.frozenset
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2422
    functionName: gunicorn.config.validate_http_protocols
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.split
    - <builtin>.isinstance
    - <builtin>.set
    - p.strip
    - <builtin>.len
    - val.strip
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: p.strip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 0
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2713
    functionName: gunicorn.config.validate_header_map_behaviour
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2782
    functionName: gunicorn.config.validate_asgi_loop
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - val
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 2793
    functionName: gunicorn.config.validate_asgi_lifespan
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - val.lower
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.OnDirtyStarting
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - arbiter
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3048
    functionName: gunicorn.config.OnDirtyStarting.on_dirty_starting
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.DirtyPostFork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - arbiter
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3067
    functionName: gunicorn.config.DirtyPostFork.dirty_post_fork
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.DirtyWorkerInit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - worker
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3086
    functionName: gunicorn.config.DirtyWorkerInit.dirty_worker_init
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.config.DirtyWorkerExit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached:
    - gunicorn.config.validate_callable
    - <builtin>.staticmethod
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - arbiter
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 3105
    functionName: gunicorn.config.DirtyWorkerExit.dirty_worker_exit
    functionSourceFile: gunicorn.config
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.reloader
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - re.compile
    - sys.platform.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.compile
    functionSourceFile: re
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24f3a60>
    - <ast.Constant object at 0x7f99a24f3910>
    - <ast.Constant object at 0x7f99a24f3370>
    argNames:
    - self
    - extra_files
    - interval
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 17
    functionName: gunicorn.reloader.ReloaderBase.__init__
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 24
    functionName: gunicorn.reloader.ReloaderBase.add_extra_file
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 27
    functionName: gunicorn.reloader.ReloaderBase.get_files
    functionSourceFile: gunicorn.reloader
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - COMPILED_EXT_RE.sub
    - sys.modules.values
    - fnames.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: COMPILED_EXT_RE.sub
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.modules.values
    functionSourceFile: sys
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fnames.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 40
    functionName: gunicorn.reloader.Reloader.run
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.tuple
    - COMPILED_EXT_RE.sub
    - os.stat
    - gunicorn.reloader.ReloaderBase.get_files
    - mtimes.get
    - sys.modules.values
    - fnames.extend
    - time.sleep
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mtimes.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1c82730>
    - <ast.Constant object at 0x7f99a1c82f70>
    argNames:
    - self
    - extra_files
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 117
    functionName: gunicorn.reloader.InotifyReloader.__init__
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - inotify.adapters.Inotify
    - <builtin>.super
    - <builtin>.set
    linkageType: pythonLinkage
    raised:
    - ImportError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inotify.adapters.Inotify
    functionSourceFile: inotify
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 81
    functionName: gunicorn.reloader.InotifyReloader.add_extra_file
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - inotify.adapters.Inotify.add_watch
    - os.path.dirname
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inotify.adapters.Inotify.add_watch
    functionSourceFile: inotify
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 91
    functionName: gunicorn.reloader.InotifyReloader.get_dirs
    functionSourceFile: gunicorn.reloader
    functionUses: 2
    functionsReached:
    - os.path.dirname
    - os.path.abspath
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 95
    functionName: gunicorn.reloader.InotifyReloader.refresh_dirs
    functionSourceFile: gunicorn.reloader
    functionUses: 1
    functionsReached:
    - os.path.abspath
    - <builtin>.set
    - gunicorn.reloader.InotifyReloader.get_dirs
    - inotify.adapters.Inotify.add_watch
    - os.path.dirname
    - os.path.isdir
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.isdir
    functionSourceFile: os
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 102
    functionName: gunicorn.reloader.InotifyReloader.run
    functionSourceFile: gunicorn.reloader
    functionUses: 0
    functionsReached:
    - inotify.adapters.Inotify.event_gen
    - os.path.abspath
    - <builtin>.set
    - gunicorn.reloader.InotifyReloader.get_dirs
    - inotify.adapters.Inotify.add_watch
    - os.path.dirname
    - os.path.isdir
    - gunicorn.reloader.InotifyReloader.refresh_dirs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inotify.adapters.Inotify.event_gen
    functionSourceFile: inotify
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl
    functionSourceFile: gunicorn.ctl
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.server
    functionSourceFile: gunicorn.ctl.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - arbiter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: gunicorn.ctl.handlers.CommandHandlers.__init__
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.Thread
    functionSourceFile: threading
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 83
    functionName: gunicorn.ctl.server.ControlSocketServer._shutdown
    functionSourceFile: gunicorn.ctl.server
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: gunicorn.ctl.server.ControlSocketServer._run_loop
    functionSourceFile: gunicorn.ctl.server
    functionUses: 0
    functionsReached:
    - os.chmod
    - asyncio.get_running_loop
    - gunicorn.ctl.server.ControlSocketServer._serve
    - os.unlink
    - os.path.exists
    - asyncio.run
    - asyncio.start_unix_server
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: gunicorn.ctl.server.ControlSocketServer._serve
    functionSourceFile: gunicorn.ctl.server
    functionUses: 1
    functionsReached:
    - os.chmod
    - asyncio.get_running_loop
    - os.unlink
    - os.path.exists
    - asyncio.start_unix_server
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.run
    functionSourceFile: asyncio
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.get_running_loop
    functionSourceFile: asyncio
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.start_unix_server
    functionSourceFile: asyncio
    functionUses: 23
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.chmod
    functionSourceFile: os
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - reader
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 129
    functionName: gunicorn.ctl.server.ControlSocketServer._handle_client
    functionSourceFile: gunicorn.ctl.server
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - <builtin>.list
    - gunicorn.ctl.protocol.make_error_response
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - <builtin>.callable
    - workers.sort
    - gunicorn.ctl.handlers.CommandHandlers.shutdown
    - <builtin>.getattr
    - workers.append
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.ctl.handlers.CommandHandlers.reopen
    - shlex.split
    - writer.wait_closed
    - gunicorn.ctl.handlers.CommandHandlers.dirty_remove
    - lnr.fileno
    - <builtin>.range
    - response.get
    - <builtin>.bytes
    - os.kill
    - gunicorn.ctl.handlers.CommandHandlers.dirty_add
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - gunicorn.ctl.protocol.ControlProtocol.read_message_async
    - sock.close
    - payload_data.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - asyncio.wait_for
    - writer.drain
    - gunicorn.ctl.protocol.make_response
    - worker.tmp.last_update
    - stats.get
    - gunicorn.ctl.handlers.CommandHandlers.show_all
    - value.encode
    - writer.write
    - struct.unpack
    - writer.close
    - <builtin>.isinstance
    - error.get
    - dirty_arbiter.app_specs.items
    - apps.append
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - gunicorn.ctl.handlers.CommandHandlers.show_listeners
    - result.update
    - struct.pack
    - gunicorn.ctl.handlers.CommandHandlers.worker_add
    - listeners.append
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - <builtin>.max
    - gunicorn.ctl.server.ControlSocketServer._dispatch
    - reader.readexactly
    - gunicorn.ctl.handlers.CommandHandlers.show_workers
    - time.monotonic
    - parts.append
    - gunicorn.ctl.server.ControlSocketServer._handle_dirty
    - web_workers.append
    - sock.settimeout
    - gunicorn.ctl.handlers.CommandHandlers.reload
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - sock.sendall
    - web_workers.sort
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - <builtin>.type
    - time.time
    - value.items
    - gunicorn.ctl.protocol.ControlProtocol.write_message_async
    - sock.recv
    - gunicorn.ctl.server.ControlSocketServer._handle_show
    - result.get
    - dirty_arbiter.workers.items
    - gunicorn.ctl.handlers.CommandHandlers.show_config
    - gunicorn.ctl.server.ControlSocketServer._execute_command
    - dirty_arbiter.app_worker_map.get
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.ctl.server.ControlSocketServer._handle_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.ctl.handlers.CommandHandlers.worker_remove
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.ctl.handlers.CommandHandlers.worker_kill
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.ctl.handlers.CommandHandlers.show_dirty
    - <builtin>.round
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - json.loads
    - <builtin>.str
    - sock.connect
    - gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    - parts.extend
    - json.dumps
    - gunicorn.ctl.handlers.CommandHandlers.help
    - gunicorn.arbiter.Arbiter.wakeup
    - gunicorn.ctl.handlers.CommandHandlers.show_stats
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - reader
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 133
    functionName: gunicorn.ctl.protocol.ControlProtocol.read_message_async
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 1
    functionsReached:
    - json.loads
    - struct.unpack
    - payload_data.decode
    - reader.readexactly
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 170
    functionName: gunicorn.ctl.server.ControlSocketServer._dispatch
    functionSourceFile: gunicorn.ctl.server
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - <builtin>.list
    - gunicorn.ctl.protocol.make_error_response
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - workers.sort
    - <builtin>.callable
    - gunicorn.ctl.handlers.CommandHandlers.shutdown
    - <builtin>.getattr
    - workers.append
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.ctl.handlers.CommandHandlers.reopen
    - shlex.split
    - gunicorn.ctl.handlers.CommandHandlers.dirty_remove
    - lnr.fileno
    - <builtin>.range
    - response.get
    - <builtin>.bytes
    - os.kill
    - gunicorn.ctl.handlers.CommandHandlers.dirty_add
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - sock.close
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.ctl.protocol.make_response
    - worker.tmp.last_update
    - stats.get
    - gunicorn.ctl.handlers.CommandHandlers.show_all
    - value.encode
    - struct.unpack
    - <builtin>.isinstance
    - error.get
    - dirty_arbiter.app_specs.items
    - apps.append
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - gunicorn.ctl.handlers.CommandHandlers.show_listeners
    - result.update
    - struct.pack
    - gunicorn.ctl.handlers.CommandHandlers.worker_add
    - listeners.append
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - <builtin>.max
    - gunicorn.ctl.handlers.CommandHandlers.show_workers
    - time.monotonic
    - parts.append
    - gunicorn.ctl.server.ControlSocketServer._handle_dirty
    - web_workers.append
    - sock.settimeout
    - gunicorn.ctl.handlers.CommandHandlers.reload
    - sock.sendall
    - web_workers.sort
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - <builtin>.type
    - time.time
    - value.items
    - sock.recv
    - gunicorn.ctl.server.ControlSocketServer._handle_show
    - result.get
    - dirty_arbiter.workers.items
    - gunicorn.ctl.handlers.CommandHandlers.show_config
    - gunicorn.ctl.server.ControlSocketServer._execute_command
    - dirty_arbiter.app_worker_map.get
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.ctl.server.ControlSocketServer._handle_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.ctl.handlers.CommandHandlers.worker_remove
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.ctl.handlers.CommandHandlers.worker_kill
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.ctl.handlers.CommandHandlers.show_dirty
    - <builtin>.round
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.str
    - sock.connect
    - gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    - parts.extend
    - gunicorn.ctl.handlers.CommandHandlers.help
    - gunicorn.arbiter.Arbiter.wakeup
    - gunicorn.ctl.handlers.CommandHandlers.show_stats
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - writer
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 159
    functionName: gunicorn.ctl.protocol.ControlProtocol.write_message_async
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 1
    functionsReached:
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - <builtin>.len
    - writer.write
    - json.dumps
    - writer.drain
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.close
    functionSourceFile: <builtin>
    functionUses: 29
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.wait_closed
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: message.get
    functionSourceFile: <builtin>
    functionUses: 74
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 209
    functionName: gunicorn.ctl.protocol.make_error_response
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parts.extend
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - parts
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 207
    functionName: gunicorn.ctl.server.ControlSocketServer._execute_command
    functionSourceFile: gunicorn.ctl.server
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - <builtin>.list
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - <builtin>.callable
    - workers.sort
    - gunicorn.ctl.handlers.CommandHandlers.shutdown
    - <builtin>.getattr
    - workers.append
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.ctl.handlers.CommandHandlers.reopen
    - gunicorn.ctl.handlers.CommandHandlers.dirty_remove
    - lnr.fileno
    - <builtin>.range
    - response.get
    - <builtin>.bytes
    - os.kill
    - gunicorn.ctl.handlers.CommandHandlers.dirty_add
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - sock.close
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - worker.tmp.last_update
    - stats.get
    - gunicorn.ctl.handlers.CommandHandlers.show_all
    - value.encode
    - struct.unpack
    - <builtin>.isinstance
    - error.get
    - dirty_arbiter.app_specs.items
    - apps.append
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - gunicorn.ctl.handlers.CommandHandlers.show_listeners
    - result.update
    - struct.pack
    - gunicorn.ctl.handlers.CommandHandlers.worker_add
    - listeners.append
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - <builtin>.max
    - gunicorn.ctl.handlers.CommandHandlers.show_workers
    - time.monotonic
    - parts.append
    - gunicorn.ctl.server.ControlSocketServer._handle_dirty
    - web_workers.append
    - sock.settimeout
    - gunicorn.ctl.handlers.CommandHandlers.reload
    - sock.sendall
    - web_workers.sort
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - <builtin>.type
    - time.time
    - value.items
    - sock.recv
    - gunicorn.ctl.server.ControlSocketServer._handle_show
    - result.get
    - dirty_arbiter.workers.items
    - gunicorn.ctl.handlers.CommandHandlers.show_config
    - dirty_arbiter.app_worker_map.get
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.ctl.server.ControlSocketServer._handle_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.ctl.handlers.CommandHandlers.worker_remove
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.ctl.handlers.CommandHandlers.worker_kill
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.ctl.handlers.CommandHandlers.show_dirty
    - <builtin>.round
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.str
    - sock.connect
    - gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    - gunicorn.ctl.handlers.CommandHandlers.help
    - gunicorn.arbiter.Arbiter.wakeup
    - gunicorn.ctl.handlers.CommandHandlers.show_stats
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2041460>
    argNames:
    - request_id
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 191
    functionName: gunicorn.ctl.protocol.make_response
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 242
    functionName: gunicorn.ctl.server.ControlSocketServer._handle_show
    functionSourceFile: gunicorn.ctl.server
    functionUses: 3
    functionsReached:
    - dirty_arbiter.app_worker_map.get
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - <builtin>.list
    - sock.close
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.ctl.handlers.CommandHandlers.show_workers
    - time.monotonic
    - socket.socket
    - <builtin>.hasattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - <builtin>.hash
    - error.to_dict
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - workers.sort
    - <builtin>.callable
    - os.environ.get
    - web_workers.append
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - worker.tmp.last_update
    - workers.append
    - stats.get
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.ctl.handlers.CommandHandlers.show_all
    - <builtin>.round
    - gunicorn.ctl.handlers.CommandHandlers.show_dirty
    - value.encode
    - sock.sendall
    - web_workers.sort
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - lnr.fileno
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - response.get
    - dirty_arbiter.app_specs.items
    - time.time
    - apps.append
    - <builtin>.str
    - sock.connect
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    - gunicorn.ctl.handlers.CommandHandlers.show_listeners
    - sock.recv
    - result.get
    - result.update
    - dirty_arbiter.workers.items
    - struct.pack
    - gunicorn.ctl.handlers.CommandHandlers.show_config
    - listeners.append
    - gunicorn.ctl.handlers.CommandHandlers.show_stats
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 264
    functionName: gunicorn.ctl.server.ControlSocketServer._handle_worker
    functionSourceFile: gunicorn.ctl.server
    functionUses: 3
    functionsReached:
    - <builtin>.max
    - gunicorn.ctl.handlers.CommandHandlers.worker_kill
    - gunicorn.arbiter.Arbiter.wakeup
    - <builtin>.int
    - gunicorn.ctl.handlers.CommandHandlers.worker_remove
    - os.kill
    - gunicorn.ctl.handlers.CommandHandlers.worker_add
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 286
    functionName: gunicorn.ctl.server.ControlSocketServer._handle_dirty
    functionSourceFile: gunicorn.ctl.server
    functionUses: 3
    functionsReached:
    - <builtin>.max
    - gunicorn.ctl.handlers.CommandHandlers.dirty_add
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.ctl.handlers.CommandHandlers.dirty_remove
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - error.get
    - response.get
    - <builtin>.bytes
    - <builtin>.type
    - sock.connect
    - value.items
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - sock.recv
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 419
    functionName: gunicorn.ctl.handlers.CommandHandlers.reload
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 3
    functionsReached:
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 430
    functionName: gunicorn.ctl.handlers.CommandHandlers.reopen
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 3
    functionsReached:
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b04430>
    argNames:
    - self
    - mode
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 440
    functionName: gunicorn.ctl.handlers.CommandHandlers.shutdown
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 3
    functionsReached:
    - os.kill
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 561
    functionName: gunicorn.ctl.handlers.CommandHandlers.help
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 457
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_all
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - socket.socket
    - <builtin>.hasattr
    - parts.append
    - <builtin>.hash
    - error.to_dict
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - web_workers.append
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - worker.tmp.last_update
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - <builtin>.round
    - sock.sendall
    - web_workers.sort
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - response.get
    - <builtin>.str
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - sock.connect
    - gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    - sock.recv
    - result.get
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_workers
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.round
    - worker.tmp.last_update
    - workers.append
    - time.monotonic
    - workers.sort
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_dirty
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - dirty_arbiter.app_worker_map.get
    - <builtin>.getattr
    - <builtin>.round
    - <builtin>.list
    - dirty_arbiter.workers.items
    - worker.tmp.last_update
    - workers.append
    - time.monotonic
    - <builtin>.hasattr
    - dirty_arbiter.app_specs.items
    - apps.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 129
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_config
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.getattr
    - <builtin>.type
    - <builtin>.hasattr
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.callable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 164
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_stats
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.getattr
    - stats.get
    - <builtin>.round
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_listeners
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - <builtin>.str
    - listeners.append
    - lnr.fileno
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20c1280>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 227
    functionName: gunicorn.ctl.handlers.CommandHandlers.worker_add
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - gunicorn.arbiter.Arbiter.wakeup
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a231f790>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 250
    functionName: gunicorn.ctl.handlers.CommandHandlers.worker_remove
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - gunicorn.arbiter.Arbiter.wakeup
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: gunicorn.ctl.handlers.CommandHandlers.worker_kill
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - os.kill
    - <builtin>.str
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19dd850>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 308
    functionName: gunicorn.ctl.handlers.CommandHandlers.dirty_add
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - error.get
    - response.get
    - <builtin>.bytes
    - <builtin>.type
    - sock.connect
    - value.items
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - sock.recv
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19ddf70>
    argNames:
    - self
    - count
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 329
    functionName: gunicorn.ctl.handlers.CommandHandlers.dirty_remove
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - <builtin>.int
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - error.get
    - response.get
    - <builtin>.bytes
    - <builtin>.type
    - sock.connect
    - value.items
    - gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    - sock.recv
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.handlers
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.round
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: workers.append
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_workers.<lambda1>
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: workers.sort
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirty_arbiter.workers.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirty_arbiter.app_specs.items
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirty_arbiter.app_worker_map.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: apps.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.type
    functionSourceFile: <builtin>
    functionUses: 67
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stats.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - operation
    - count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 350
    functionName: gunicorn.ctl.handlers.CommandHandlers._send_manage_message
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 6
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - error.get
    - response.get
    - <builtin>.bytes
    - <builtin>.type
    - sock.connect
    - value.items
    - sock.recv
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.settimeout
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 560
    functionName: gunicorn.dirty.protocol.BinaryProtocol.write_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 46
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 520
    functionName: gunicorn.dirty.protocol.BinaryProtocol.read_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 46
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - sock.recv
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - result.update
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response.get
    functionSourceFile: <builtin>
    functionUses: 54
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error.get
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: web_workers.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.handlers.CommandHandlers.show_all.<lambda1>
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: web_workers.sort
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 516
    functionName: gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers
    functionSourceFile: gunicorn.ctl.handlers
    functionUses: 5
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - sock.close
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - <builtin>.hasattr
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - sock.settimeout
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - response.get
    - <builtin>.str
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - sock.connect
    - sock.recv
    - result.get
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.dirty.protocol
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 0
    functionsReached:
    - MSG_TYPE_TO_STR.items
    - struct.calcsize
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: MSG_TYPE_TO_STR.items
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.calcsize
    functionSourceFile: struct
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - msg_type
    - request_id
    - payload_length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_header
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 72
    functionsReached:
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: struct.pack
    functionSourceFile: struct
    functionUses: 91
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 131
    functionName: gunicorn.dirty.protocol.BinaryProtocol.decode_header
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 58
    functionsReached:
    - <builtin>.len
    - struct.unpack
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a21f07c0>
    - <ast.Constant object at 0x7f99a21f01c0>
    argNames:
    - request_id
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 180
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_request
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - value.items
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 19
    ICount: 4
    IfCount: 13
    argCount: 1
    argDefaultValues: []
    argNames:
    - value
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: gunicorn.dirty.tlv.TLVEncoder.encode
    functionSourceFile: gunicorn.dirty.tlv
    functionUses: 70
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - struct.pack
    - parts.append
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - result
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 207
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_response
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 225
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_error
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - value.items
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.type
    - error.to_dict
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error.to_dict
    functionSourceFile: <builtin>
    functionUses: 65
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 256
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - request_id
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 274
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_end
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - request_id
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 289
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_status
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22a2b80>
    argNames:
    - request_id
    - op
    - count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 304
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22a2820>
    - <ast.Constant object at 0x7f99a22a2310>
    - <ast.Constant object at 0x7f99a2416190>
    argNames:
    - request_id
    - op
    - table
    - key
    - value
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 326
    functionName: gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 64
    functionsReached:
    - value.encode
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - struct.pack
    - parts.append
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 359
    functionName: gunicorn.dirty.protocol.BinaryProtocol.decode_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 284
    functionName: gunicorn.dirty.tlv.TLVEncoder.decode_full
    functionSourceFile: gunicorn.dirty.tlv
    functionUses: 58
    functionsReached:
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - reader
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 408
    functionName: gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 9
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - reader.readexactly
    - result.update
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reader.readexactly
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: result.update
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - writer
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 468
    functionName: gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 15
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - writer.write
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 576
    functionName: gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 63
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - struct.pack
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.write
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: writer.drain
    functionSourceFile: <builtin>
    functionUses: 18
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 492
    functionName: gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 47
    functionsReached:
    - <builtin>.len
    - sock.recv
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.recv
    functionSourceFile: <builtin>
    functionUses: 53
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.hash
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: MSG_TYPE_FROM_STR.get
    functionSourceFile: <builtin>
    functionUses: 64
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a220eb20>
    - <ast.Constant object at 0x7f99a220ef70>
    argNames:
    - request_id
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 655
    functionName: gunicorn.dirty.protocol.make_request
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 7
    functionsReached:
    - <builtin>.list
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - result
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 680
    functionName: gunicorn.dirty.protocol.make_response
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - error
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 698
    functionName: gunicorn.dirty.protocol.make_error_response
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 11
    functionsReached:
    - <builtin>.isinstance
    - gunicorn.dirty.errors.DirtyError.to_dict
    - <builtin>.str
    - <builtin>.type
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: gunicorn.dirty.errors.DirtyError.to_dict
    functionSourceFile: ''
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - request_id
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 728
    functionName: gunicorn.dirty.protocol.make_chunk_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - request_id
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 746
    functionName: gunicorn.dirty.protocol.make_end_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22717c0>
    - <ast.Constant object at 0x7f99a2271340>
    - <ast.Constant object at 0x7f99a2271c70>
    argNames:
    - request_id
    - op
    - table
    - key
    - value
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 762
    functionName: gunicorn.dirty.protocol.make_stash_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2220d30>
    argNames:
    - request_id
    - op
    - count
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 793
    functionName: gunicorn.dirty.protocol.make_manage_message
    functionSourceFile: gunicorn.dirty.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.tlv
    functionSourceFile: gunicorn.dirty.tlv
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytes
    functionSourceFile: <builtin>
    functionUses: 96
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parts.append
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.items
    functionSourceFile: <builtin>
    functionUses: 71
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 33
    ICount: 2
    IfCount: 23
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1b435b0>
    argNames:
    - data
    - offset
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: gunicorn.dirty.tlv.TLVEncoder.decode
    functionSourceFile: gunicorn.dirty.tlv
    functionUses: 59
    functionsReached:
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.isinstance
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: items.append
    functionSourceFile: <builtin>
    functionUses: 60
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.protocol
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: gunicorn.ctl.protocol.ControlProtocol.encode_message
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 7
    functionsReached:
    - <builtin>.len
    - json.dumps
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.dumps
    functionSourceFile: json
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 57
    functionName: gunicorn.ctl.protocol.ControlProtocol.decode_message
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - payload.decode
    - struct.unpack
    - json.loads
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: json.loads
    functionSourceFile: json
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: gunicorn.ctl.protocol.ControlProtocol.read_message
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 4
    functionsReached:
    - sock.recv
    - <builtin>.len
    - struct.unpack
    - payload_data.decode
    - json.loads
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ProtocolError
    - ConnectionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload_data.decode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 121
    functionName: gunicorn.ctl.protocol.ControlProtocol.write_message
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 4
    functionsReached:
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - sock.sendall
    - json.dumps
    - <builtin>.len
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2233a00>
    argNames:
    - request_id
    - command
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 172
    functionName: gunicorn.ctl.protocol.make_request
    functionSourceFile: gunicorn.ctl.protocol
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.ctl.client
    functionSourceFile: gunicorn.ctl.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19fee20>
    argNames:
    - self
    - socket_path
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: gunicorn.ctl.client.ControlClient.__init__
    functionSourceFile: gunicorn.ctl.client
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: gunicorn.ctl.client.ControlClient.connect
    functionSourceFile: gunicorn.ctl.client
    functionUses: 5
    functionsReached:
    - socket.socket
    linkageType: pythonLinkage
    raised:
    - ControlClientError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 65
    functionName: gunicorn.ctl.client.ControlClient.close
    functionSourceFile: gunicorn.ctl.client
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2271130>
    argNames:
    - self
    - command
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 74
    functionName: gunicorn.ctl.client.ControlClient.send_command
    functionSourceFile: gunicorn.ctl.client
    functionUses: 3
    functionsReached:
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - gunicorn.ctl.protocol.make_request
    - gunicorn.ctl.client.ControlClient.connect
    - sock.recv
    - sock.sendall
    - <builtin>.len
    - json.dumps
    - struct.unpack
    - gunicorn.ctl.protocol.ControlProtocol.write_message
    - payload_data.decode
    - socket.socket
    - struct.pack
    - <builtin>.min
    - gunicorn.ctl.client.ControlClient.close
    - json.loads
    - response.get
    - gunicorn.ctl.protocol.ControlProtocol.read_message
    linkageType: pythonLinkage
    raised:
    - ControlClientError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 106
    functionName: gunicorn.ctl.client.ControlClient.__enter__
    functionSourceFile: gunicorn.ctl.client
    functionUses: 0
    functionsReached:
    - gunicorn.ctl.client.ControlClient.connect
    - socket.socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - args
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: gunicorn.ctl.client.ControlClient.__exit__
    functionSourceFile: gunicorn.ctl.client
    functionUses: 0
    functionsReached:
    - gunicorn.ctl.client.ControlClient.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - line
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: gunicorn.ctl.client.parse_command
    functionSourceFile: gunicorn.ctl.client
    functionUses: 4
    functionsReached:
    - part.isdigit
    - args.append
    - command_parts.append
    - shlex.split
    - part.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: part.isdigit
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: part.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: command_parts.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: args.append
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.pidfile
    functionSourceFile: gunicorn.pidfile
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: gunicorn.pidfile.Pidfile.validate
    functionSourceFile: gunicorn.pidfile
    functionUses: 8
    functionsReached:
    - os.kill
    - <builtin>.open
    - f.read
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.mkstemp
    functionSourceFile: tempfile
    functionUses: 26
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.write
    functionSourceFile: os
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.rename
    functionSourceFile: os
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty
    functionSourceFile: gunicorn.dirty
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.dirty.client
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - threading.local
    - contextvars.ContextVar
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a29b0880>
    argNames:
    - self
    - socket_path
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 40
    functionName: gunicorn.dirty.client.DirtyClient.__init__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 2
    functionsReached:
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: gunicorn.dirty.client.DirtyClient.connect
    functionSourceFile: gunicorn.dirty.client
    functionUses: 5
    functionsReached:
    - socket.socket
    linkageType: pythonLinkage
    raised:
    - DirtyConnectionError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 80
    functionName: gunicorn.dirty.client.DirtyClient.execute
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - <builtin>.list
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.client.DirtyClient.connect
    - error.details.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - Exception.__new__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - error_classes.get
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.client.DirtyClient._handle_response
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - gunicorn.dirty.client.DirtyClient._close_socket
    - <builtin>.range
    - <builtin>.str
    - response.get
    - data.get
    - <builtin>.bytes
    - <builtin>.type
    - value.items
    - Exception.__init__
    - sock.recv
    - gunicorn.dirty.errors.DirtyError.from_dict
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.client.DirtyClient._execute_locked
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 101
    functionName: gunicorn.dirty.client.DirtyClient._execute_locked
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - <builtin>.list
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.client.DirtyClient.connect
    - error.details.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - Exception.__new__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - error_classes.get
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.client.DirtyClient._handle_response
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - gunicorn.dirty.client.DirtyClient._close_socket
    - <builtin>.range
    - <builtin>.str
    - response.get
    - data.get
    - <builtin>.bytes
    - <builtin>.type
    - value.items
    - Exception.__init__
    - sock.recv
    - gunicorn.dirty.errors.DirtyError.from_dict
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised:
    - DirtyConnectionError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uuid.uuid4
    functionSourceFile: uuid
    functionUses: 42
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - response
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 166
    functionName: gunicorn.dirty.client.DirtyClient._handle_response
    functionSourceFile: gunicorn.dirty.client
    functionUses: 3
    functionsReached:
    - error.details.get
    - Exception.__init__
    - error_classes.get
    - gunicorn.dirty.errors.DirtyError.from_dict
    - Exception.__new__
    - response.get
    - data.get
    linkageType: pythonLinkage
    raised:
    - DirtyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 179
    functionName: gunicorn.dirty.client.DirtyClient._close_socket
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: gunicorn.dirty.client.DirtyClient.stream
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyStreamIterator.__init__
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f99a29c29d0>
    argNames:
    - self
    - client
    - app_path
    - action
    - args
    - kwargs
    - idle_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 365
    functionName: gunicorn.dirty.client.DirtyStreamIterator.__init__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - cls
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 34
    functionName: gunicorn.dirty.errors.DirtyError.from_dict
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 4
    functionsReached:
    - error.details.get
    - Exception.__init__
    - error_classes.get
    - Exception.__new__
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: gunicorn.dirty.client.DirtyClient.close
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.client.DirtyClient._close_socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 197
    functionName: gunicorn.dirty.client.DirtyClient.connect_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 4
    functionsReached:
    - asyncio.wait_for
    - asyncio.open_unix_connection
    linkageType: pythonLinkage
    raised:
    - DirtyConnectionError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.open_unix_connection
    functionSourceFile: asyncio
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 223
    functionName: gunicorn.dirty.client.DirtyClient.execute_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - items.append
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - reader.readexactly
    - gunicorn.dirty.client.DirtyClient._close_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - error.details.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - asyncio.open_unix_connection
    - Exception.__new__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - asyncio.wait_for
    - writer.drain
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.client.DirtyClient.connect_async
    - value.encode
    - error_classes.get
    - writer.write
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.client.DirtyClient._handle_response
    - <builtin>.isinstance
    - <builtin>.range
    - response.get
    - <builtin>.str
    - data.get
    - value.items
    - <builtin>.type
    - <builtin>.bytes
    - Exception.__init__
    - gunicorn.dirty.errors.DirtyError.from_dict
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised:
    - DirtyConnectionError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 307
    functionName: gunicorn.dirty.client.DirtyClient._close_async
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 279
    functionName: gunicorn.dirty.client.DirtyClient.stream_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyAsyncStreamIterator.__init__
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f99a19ff6a0>
    argNames:
    - self
    - client
    - app_path
    - action
    - args
    - kwargs
    - idle_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 509
    functionName: gunicorn.dirty.client.DirtyAsyncStreamIterator.__init__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 318
    functionName: gunicorn.dirty.client.DirtyClient.close_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.client.DirtyClient._close_async
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 326
    functionName: gunicorn.dirty.client.DirtyClient.__enter__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - socket.socket
    - gunicorn.dirty.client.DirtyClient.connect
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 330
    functionName: gunicorn.dirty.client.DirtyClient.__exit__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyClient._close_socket
    - gunicorn.dirty.client.DirtyClient.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 333
    functionName: gunicorn.dirty.client.DirtyClient.__aenter__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - asyncio.wait_for
    - asyncio.open_unix_connection
    - gunicorn.dirty.client.DirtyClient.connect_async
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 337
    functionName: gunicorn.dirty.client.DirtyClient.__aexit__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyClient._close_async
    - gunicorn.dirty.client.DirtyClient.close_async
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 383
    functionName: gunicorn.dirty.client.DirtyStreamIterator.__iter__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 386
    functionName: gunicorn.dirty.client.DirtyStreamIterator.__next__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - <builtin>.list
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - gunicorn.dirty.client.DirtyStreamIterator._read_next_chunk
    - socket.socket
    - parts.append
    - <builtin>.hash
    - error.to_dict
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.client.DirtyClient.connect
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.client.DirtyStreamIterator._start_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - gunicorn.dirty.client.DirtyClient._close_socket
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - sock.recv
    - result.update
    - struct.pack
    - <builtin>.min
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 396
    functionName: gunicorn.dirty.client.DirtyStreamIterator._start_request
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - socket.socket
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.client.DirtyClient.connect
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - sock.sendall
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 417
    functionName: gunicorn.dirty.client.DirtyStreamIterator._read_next_chunk
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - <builtin>.isinstance
    - sock.recv
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - result.update
    - time.monotonic
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - gunicorn.dirty.client.DirtyClient._close_socket
    - <builtin>.range
    - <builtin>.min
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - response.get
    linkageType: pythonLinkage
    raised:
    - DirtyError
    - DirtyConnectionError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 527
    functionName: gunicorn.dirty.client.DirtyAsyncStreamIterator.__aiter__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 530
    functionName: gunicorn.dirty.client.DirtyAsyncStreamIterator.__anext__
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - items.append
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - reader.readexactly
    - gunicorn.dirty.client.DirtyClient._close_async
    - time.monotonic
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - asyncio.wait_for
    - gunicorn.dirty.client.DirtyAsyncStreamIterator._read_next_chunk
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.client.DirtyClient.connect_async
    - value.encode
    - writer.write
    - struct.unpack
    - message.get
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.range
    - response.get
    - <builtin>.str
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - result.update
    - struct.pack
    - gunicorn.dirty.client.DirtyAsyncStreamIterator._start_request
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - <builtin>.min
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 540
    functionName: gunicorn.dirty.client.DirtyAsyncStreamIterator._start_request
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - asyncio.wait_for
    - uuid.uuid4
    - gunicorn.dirty.protocol.make_request
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.client.DirtyClient.connect_async
    - value.encode
    - writer.write
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 564
    functionName: gunicorn.dirty.client.DirtyAsyncStreamIterator._read_next_chunk
    functionSourceFile: gunicorn.dirty.client
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - <builtin>.range
    - items.append
    - <builtin>.len
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - reader.readexactly
    - asyncio.wait_for
    - result.update
    - gunicorn.dirty.client.DirtyClient._close_async
    - time.monotonic
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - <builtin>.min
    - <builtin>.isinstance
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - response.get
    linkageType: pythonLinkage
    raised:
    - DirtyError
    - DirtyConnectionError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: threading.local
    functionSourceFile: threading
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: contextvars.ContextVar
    functionSourceFile: contextvars
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 418
    functionName: gunicorn.dirty.stash.set_stash_socket_path
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 667
    functionName: gunicorn.dirty.client.get_dirty_socket_path
    functionSourceFile: gunicorn.dirty.client
    functionUses: 2
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised:
    - DirtyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20e3880>
    argNames:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 681
    functionName: gunicorn.dirty.client.get_dirty_client
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyClient.__init__
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.client.get_dirty_socket_path
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d01e50>
    argNames:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 710
    functionName: gunicorn.dirty.client.get_dirty_client_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.client.DirtyClient.__init__
    - os.environ.get
    - _async_client_var.get
    - gunicorn.dirty.client.get_dirty_socket_path
    - threading.Lock
    - _async_client_var.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _async_client_var.get
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _async_client_var.set
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 740
    functionName: gunicorn.dirty.client.close_dirty_client
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - client.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.close
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 748
    functionName: gunicorn.dirty.client.close_dirty_client_async
    functionSourceFile: gunicorn.dirty.client
    functionUses: 0
    functionsReached:
    - _async_client_var.get
    - client.close_async
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.close_async
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.dirty.stash
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - threading.local
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 76
    functionName: gunicorn.dirty.stash.StashTableNotFoundError.__init__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - table_name
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 84
    functionName: gunicorn.dirty.stash.StashKeyNotFoundError.__init__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a241ceb0>
    argNames:
    - self
    - socket_path
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 97
    functionName: gunicorn.dirty.stash.StashClient.__init__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 12
    functionsReached:
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: gunicorn.dirty.stash.StashClient._get_request_id
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 32
    functionsReached:
    - <builtin>.str
    - uuid.uuid4
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 114
    functionName: gunicorn.dirty.stash.StashClient._connect
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 32
    functionsReached:
    - socket.socket
    linkageType: pythonLinkage
    raised:
    - StashError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 128
    functionName: gunicorn.dirty.stash.StashClient._close
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 34
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f99a242b280>
    - <ast.Constant object at 0x7f99a242b3d0>
    - <ast.Constant object at 0x7f99a242bca0>
    argNames:
    - self
    - op
    - table
    - key
    - value
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 137
    functionName: gunicorn.dirty.stash.StashClient._execute
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 31
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised:
    - StashError
    - StashKeyNotFoundError
    - StashTableNotFoundError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error_info.get
    functionSourceFile: <builtin>
    functionUses: 32
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - table
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 191
    functionName: gunicorn.dirty.stash.StashClient.put
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b00400>
    argNames:
    - self
    - table
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 204
    functionName: gunicorn.dirty.stash.StashClient.get
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 5
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - table
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 221
    functionName: gunicorn.dirty.stash.StashClient.delete
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b00ca0>
    argNames:
    - self
    - table
    - pattern
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 234
    functionName: gunicorn.dirty.stash.StashClient.keys
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 5
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 247
    functionName: gunicorn.dirty.stash.StashClient.clear
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 256
    functionName: gunicorn.dirty.stash.StashClient.info
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 268
    functionName: gunicorn.dirty.stash.StashClient.ensure
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d28160>
    argNames:
    - self
    - table
    - key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 279
    functionName: gunicorn.dirty.stash.StashClient.exists
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 3
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - table
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 292
    functionName: gunicorn.dirty.stash.StashClient.delete_table
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 301
    functionName: gunicorn.dirty.stash.StashClient.tables
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 310
    functionName: gunicorn.dirty.stash.StashClient.table
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.stash.StashTable.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - client
    - name
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 350
    functionName: gunicorn.dirty.stash.StashTable.__init__
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 322
    functionName: gunicorn.dirty.stash.StashClient.close
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.stash.StashClient._close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 327
    functionName: gunicorn.dirty.stash.StashClient.__enter__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_val
    - exc_tb
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 330
    functionName: gunicorn.dirty.stash.StashClient.__exit__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.stash.StashClient.close
    - gunicorn.dirty.stash.StashClient._close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 355
    functionName: gunicorn.dirty.stash.StashTable.name
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 359
    functionName: gunicorn.dirty.stash.StashTable.__getitem__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.stash.StashClient.exists
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.stash.StashClient.get
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 367
    functionName: gunicorn.dirty.stash.StashTable.__setitem__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.stash.StashClient.put
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 370
    functionName: gunicorn.dirty.stash.StashTable.__delitem__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient.delete
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised:
    - KeyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 374
    functionName: gunicorn.dirty.stash.StashTable.__contains__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.stash.StashClient.exists
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 377
    functionName: gunicorn.dirty.stash.StashTable.__iter__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.stash.StashClient.keys
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - <builtin>.iter
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 380
    functionName: gunicorn.dirty.stash.StashTable.__len__
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - info.get
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.stash.StashClient.info
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: info.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24f7880>
    argNames:
    - self
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 384
    functionName: gunicorn.dirty.stash.StashTable.get
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.stash.StashClient.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2af2160>
    argNames:
    - self
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 388
    functionName: gunicorn.dirty.stash.StashTable.keys
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.stash.StashClient.keys
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 392
    functionName: gunicorn.dirty.stash.StashTable.clear
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient.clear
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 396
    functionName: gunicorn.dirty.stash.StashTable.items
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.stash.StashClient.keys
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.stash.StashClient.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 401
    functionName: gunicorn.dirty.stash.StashTable.values
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.stash.StashClient.keys
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - struct.pack
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.stash.StashClient.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 424
    functionName: gunicorn.dirty.stash.get_stash_socket_path
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 12
    functionsReached:
    - os.environ.get
    linkageType: pythonLinkage
    raised:
    - StashError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 439
    functionName: gunicorn.dirty.stash._get_client
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 11
    functionsReached:
    - os.environ.get
    - <builtin>.getattr
    - threading.Lock
    - gunicorn.dirty.stash.get_stash_socket_path
    - gunicorn.dirty.stash.StashClient.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - table
    - key
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 451
    functionName: gunicorn.dirty.stash.put
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.stash.StashClient.put
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20e3ee0>
    argNames:
    - table
    - key
    - default
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 456
    functionName: gunicorn.dirty.stash.get
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - threading.Lock
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.stash.StashClient.__init__
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.stash.StashClient.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - table
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 461
    functionName: gunicorn.dirty.stash.delete
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient.delete
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b3cd90>
    argNames:
    - table
    - pattern
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 466
    functionName: gunicorn.dirty.stash.keys
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - threading.Lock
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.stash.StashClient.__init__
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.stash.StashClient.keys
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - table
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 471
    functionName: gunicorn.dirty.stash.clear
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient.clear
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - table
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 476
    functionName: gunicorn.dirty.stash.info
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.stash.StashClient.info
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - table
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 481
    functionName: gunicorn.dirty.stash.ensure
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - threading.Lock
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.stash.StashClient.__init__
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.stash.StashClient.ensure
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a222ab50>
    argNames:
    - table
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 486
    functionName: gunicorn.dirty.stash.exists
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.stash.StashClient.exists
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - table
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 491
    functionName: gunicorn.dirty.stash.delete_table
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - threading.Lock
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - parts.append
    - gunicorn.dirty.stash.StashClient.__init__
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.stash.StashClient.delete_table
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - value.items
    - <builtin>.bytes
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 496
    functionName: gunicorn.dirty.stash.tables
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - threading.Lock
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - socket.socket
    - gunicorn.dirty.stash.StashClient.__init__
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.read_message
    - os.environ.get
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.stash.StashClient.tables
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - uuid.uuid4
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.stash.StashClient._execute
    - error_info.get
    - value.encode
    - sock.sendall
    - gunicorn.dirty.stash.StashClient._connect
    - struct.unpack
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.write_message
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - gunicorn.dirty.protocol.BinaryProtocol._recv_exactly
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.str
    - response.get
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.stash.StashClient._get_request_id
    - sock.recv
    - gunicorn.dirty.stash.StashClient._close
    - result.update
    - gunicorn.dirty.stash.get_stash_socket_path
    - struct.pack
    - gunicorn.dirty.stash._get_client
    - gunicorn.dirty.protocol.make_stash_message
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - name
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 501
    functionName: gunicorn.dirty.stash.table
    functionSourceFile: gunicorn.dirty.stash
    functionUses: 0
    functionsReached:
    - os.environ.get
    - <builtin>.getattr
    - threading.Lock
    - gunicorn.dirty.stash.StashTable.__init__
    - gunicorn.dirty.stash.StashClient.table
    - gunicorn.dirty.stash.get_stash_socket_path
    - gunicorn.dirty.stash.StashClient.__init__
    - gunicorn.dirty.stash._get_client
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.errors
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2238d90>
    argNames:
    - self
    - message
    - details
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 15
    functionName: gunicorn.dirty.errors.DirtyError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: gunicorn.dirty.errors.DirtyError.__str__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.get
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error_classes.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: Exception.__new__
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: Exception.__init__
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error.details.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b3cd90>
    - <ast.Constant object at 0x7f99a2b3c940>
    argNames:
    - self
    - message
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: gunicorn.dirty.errors.DirtyTimeoutError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 5
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20e3fa0>
    - <ast.Constant object at 0x7f99a20e31c0>
    argNames:
    - self
    - message
    - socket_path
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 92
    functionName: gunicorn.dirty.errors.DirtyConnectionError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20e3f40>
    - <ast.Constant object at 0x7f99a20e3880>
    argNames:
    - self
    - message
    - worker_id
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 101
    functionName: gunicorn.dirty.errors.DirtyWorkerError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 7
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1d01fd0>
    - <ast.Constant object at 0x7f99a1d01a30>
    - <ast.Constant object at 0x7f99a1d01be0>
    argNames:
    - self
    - message
    - app_path
    - action
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 115
    functionName: gunicorn.dirty.errors.DirtyAppError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 4
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - app_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 132
    functionName: gunicorn.dirty.errors.DirtyAppNotFoundError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1abd4f0>
    argNames:
    - self
    - app_path
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 163
    functionName: gunicorn.dirty.errors.DirtyNoWorkersAvailableError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 2
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24f7700>
    - <ast.Constant object at 0x7f99a24f7a90>
    argNames:
    - self
    - message
    - raw_data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 173
    functionName: gunicorn.dirty.errors.DirtyProtocolError.__init__
    functionSourceFile: gunicorn.dirty.errors
    functionUses: 0
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tempfile.mkdtemp
    functionSourceFile: tempfile
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 121
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 6
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.set
    - <builtin>.len
    - gunicorn.dirty.app.parse_dirty_app_spec
    - import_path.rsplit
    - <builtin>.int
    - gunicorn.dirty.app.get_app_workers_attribute
    - <builtin>.isinstance
    - spec.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - spec
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 140
    functionName: gunicorn.dirty.app.parse_dirty_app_spec
    functionSourceFile: gunicorn.dirty.app
    functionUses: 7
    functionsReached:
    - <builtin>.len
    - spec.split
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - DirtyAppError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 300
    functionName: gunicorn.dirty.app.get_app_workers_attribute
    functionSourceFile: gunicorn.dirty.app
    functionUses: 7
    functionsReached:
    - <builtin>.isinstance
    - importlib.import_module
    - <builtin>.getattr
    - import_path.rsplit
    linkageType: pythonLinkage
    raised:
    - DirtyAppNotFoundError
    - DirtyAppError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._get_minimum_workers
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 3
    functionsReached:
    - <builtin>.max
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 18
    functionsReached:
    - <builtin>.len
    - app_paths.append
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app_paths.append
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    - app_paths
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 18
    functionsReached:
    - <builtin>.list
    - <builtin>.set
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 217
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: f.write
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 10
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 266
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 6
    functionsReached:
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 343
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._run_async
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 6
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - gunicorn.dirty.app.load_dirty_app
    - asyncio.new_event_loop
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 1128
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 6
    functionsReached:
    - os.listdir
    - os.rmdir
    - os.path.join
    - os.unlink
    - os.path.exists
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signal.signal
    functionSourceFile: signal
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 10
    IfCount: 11
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 280
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._signal_handler
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - gunicorn.dirty.arbiter.DirtyArbiter._get_minimum_workers
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda1>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - gunicorn.dirty.arbiter.DirtyArbiter._handle_sigchld
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 398
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._handle_sigchld
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - gunicorn.util.set_owner_process
    - os.WIFSIGNALED
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.WEXITSTATUS
    - app.init
    - os.WIFEXITED
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.WTERMSIG
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.create_task
    functionSourceFile: asyncio
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda2>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - <builtin>.range
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter.reload
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 1091
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.reload
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - <builtin>.range
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda3>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 908
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 12
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda4>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 338
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 383
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 7
    functionsReached:
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - os.getppid
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - signal.signal
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - os.utime
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - tempfile.mkstemp
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.close
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - os.umask
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.path.join
    - os._exit
    - os.fdopen
    - time.time
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - os.unlink
    - gunicorn.util.get_username
    - <builtin>.len
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - os.path.isdir
    - random.seed
    - os.setuid
    - asyncio.set_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - app_paths.append
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: monitor_task.cancel
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24c86a0>
    argNames:
    - self
    - graceful
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1105
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.stop
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 7
    functionsReached:
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - os.WTERMSIG
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - os.WEXITSTATUS
    - asyncio.sleep
    - <builtin>.list
    - os.WIFEXITED
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - os.unlink
    - os.WIFSIGNALED
    - os.kill
    - writer.close
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - os.waitpid
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.sleep
    functionSourceFile: asyncio
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 1047
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 8
    functionsReached:
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - <builtin>.list
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - os.unlink
    - worker.tmp.last_update
    - os.kill
    - time.monotonic
    - writer.close
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1066
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 10
    functionsReached:
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - os.WTERMSIG
    - os.WEXITSTATUS
    - <builtin>.list
    - os.WIFEXITED
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - os.unlink
    - os.WIFSIGNALED
    - writer.close
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - os.waitpid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - reader
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 405
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_client
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - importlib.import_module
    - future.set_exception
    - <builtin>.list
    - asyncio.create_task
    - asyncio.Queue
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - error.to_dict
    - <builtin>.hash
    - <builtin>.hasattr
    - <builtin>.super
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter.handle_stash_request
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - queue.put
    - queue.task_done
    - gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - error_type.title
    - app.init
    - gunicorn.dirty.arbiter.DirtyArbiter.handle_manage_request
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - writer.wait_closed
    - os.setgid
    - <builtin>.range
    - gunicorn.dirty.arbiter.DirtyArbiter.route_request
    - <builtin>.bytes
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - queue.get
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - gunicorn.dirty.arbiter.DirtyArbiter._get_minimum_workers
    - signal.signal
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - gunicorn.dirty.arbiter.DirtyArbiter.handle_status_request
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - tempfile.mkstemp
    - asyncio.get_running_loop
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - asyncio.wait_for
    - request.get
    - value.encode
    - writer.write
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - struct.unpack
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker
    - writer.close
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - future.done
    - gunicorn.dirty.worker.DirtyWorker.notify
    - result.update
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - struct.pack
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - asyncio.new_event_loop
    - <builtin>.max
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.errors.DirtyError.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - reader.readexactly
    - os.geteuid
    - gunicorn.util._setproctitle
    - os.close
    - time.monotonic
    - concurrent.futures.ThreadPoolExecutor
    - gunicorn.dirty.errors.DirtyNoWorkersAvailableError.__init__
    - parts.append
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - gunicorn.dirty.protocol.make_response
    - os.umask
    - message.get
    - gunicorn.util.close_on_exec
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - workers_info.sort
    - os.fdopen
    - <builtin>.type
    - time.time
    - value.items
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - result.get
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer.consumer
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.unlink
    - fnmatch.fnmatch
    - gunicorn.util.get_username
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - gunicorn.dirty.errors.DirtyTimeoutError.__init__
    - <builtin>.len
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - os.path.isdir
    - random.seed
    - gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer
    - os.setuid
    - <builtin>.round
    - future.set_result
    - gunicorn.dirty.errors.DirtyError.to_dict
    - asyncio.set_event_loop
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - <builtin>.int
    - import_path.rsplit
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - workers_info.append
    - heartbeat_task.cancel
    - gunicorn.dirty.arbiter.DirtyArbiter._get_available_worker
    - app_paths.append
    - <builtin>.str
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 25
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 36
    ICount: 6
    IfCount: 25
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - client_writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 791
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_stash_request
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.errors.DirtyError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - fnmatch.fnmatch
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.protocol.make_response
    - error_type.title
    - value.encode
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - struct.pack
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - client_writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 656
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_status_request
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - <builtin>.getattr
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - worker.tmp.last_update
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.protocol.make_response
    - value.encode
    - <builtin>.round
    - writer.write
    - message.get
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - workers_info.append
    - workers_info.sort
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - value.items
    - <builtin>.bytes
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - client_writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 697
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_manage_request
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - importlib.import_module
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - error.to_dict
    - <builtin>.hash
    - <builtin>.hasattr
    - <builtin>.super
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - app.init
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - os.setgid
    - <builtin>.range
    - <builtin>.bytes
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - asyncio.start_unix_server
    - gunicorn.dirty.arbiter.DirtyArbiter._get_minimum_workers
    - signal.signal
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - os.utime
    - setproctitle.setproctitle
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - tempfile.mkstemp
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - gunicorn.util.unlink
    - value.encode
    - writer.write
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - os.fork
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - writer.close
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.worker.DirtyWorker.notify
    - os.getpid
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - struct.pack
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    - gunicorn.dirty.app.load_dirty_app
    - <builtin>.max
    - asyncio.new_event_loop
    - gunicorn.dirty.errors.DirtyError.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - os.geteuid
    - gunicorn.util._setproctitle
    - os.close
    - parts.append
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - os.getgid
    - <builtin>.set
    - gunicorn.util.chown
    - os.path.exists
    - gunicorn.dirty.protocol.make_response
    - os.umask
    - message.get
    - gunicorn.util.close_on_exec
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - os.fdopen
    - <builtin>.type
    - time.time
    - value.items
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - fcntl.fcntl
    - result.get
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.unlink
    - gunicorn.util.get_username
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - os.path.isdir
    - random.seed
    - os.setuid
    - gunicorn.dirty.errors.DirtyError.to_dict
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - heartbeat_task.cancel
    - app_paths.append
    - <builtin>.str
    - os.urandom
    - os.getuid
    - os.chown
    - pwd.getpwuid
    - app.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 6
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - client_writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 445
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.route_request
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.errors.DirtyError.__init__
    - future.set_exception
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - <builtin>.list
    - asyncio.create_task
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer.consumer
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - asyncio.Queue
    - reader.readexactly
    - gunicorn.dirty.errors.DirtyNoWorkersAvailableError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.errors.DirtyTimeoutError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.get_running_loop
    - <builtin>.len
    - asyncio.sleep
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - asyncio.wait_for
    - queue.put
    - queue.task_done
    - gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - os.path.exists
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - request.get
    - gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer
    - value.encode
    - future.set_result
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - writer.close
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter._get_available_worker
    - <builtin>.range
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - future.done
    - queue.get
    - result.update
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.get
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22a2c70>
    argNames:
    - self
    - app_path
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 583
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._get_available_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 2
    functionsReached:
    - <builtin>.list
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 497
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - future.set_exception
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - asyncio.create_task
    - <builtin>.list
    - gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer.consumer
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - asyncio.Queue
    - reader.readexactly
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.errors.DirtyTimeoutError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.sleep
    - <builtin>.len
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - asyncio.wait_for
    - writer.drain
    - queue.task_done
    - gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - os.path.exists
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - request.get
    - value.encode
    - future.set_result
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - writer.close
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - future.done
    - queue.get
    - result.update
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.put
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 502
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer.consumer
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 3
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - future.set_exception
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - reader.readexactly
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.errors.DirtyTimeoutError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.sleep
    - <builtin>.len
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - asyncio.wait_for
    - writer.drain
    - queue.task_done
    - gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - os.path.exists
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - request.get
    - value.encode
    - future.set_result
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - writer.close
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - future.done
    - queue.get
    - result.update
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 10
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    - request
    - client_writer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 523
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 4
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - reader.readexactly
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.errors.DirtyTimeoutError.__init__
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.sleep
    - <builtin>.len
    - asyncio.open_unix_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - asyncio.wait_for
    - writer.drain
    - gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - os.path.exists
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - request.get
    - value.encode
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - struct.unpack
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - writer.close
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - result.update
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: future.done
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: future.set_result
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: future.set_exception
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: queue.task_done
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 625
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 5
    functionsReached:
    - os.path.exists
    - asyncio.sleep
    - asyncio.open_unix_connection
    - <builtin>.range
    linkageType: pythonLinkage
    raised:
    - DirtyError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - worker_pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 646
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 26
    functionsReached:
    - writer.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: workers_info.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_status_request.<lambda1>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: workers_info.sort
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 12
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22d6df0>
    argNames:
    - self
    - force_all_apps
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 931
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 17
    functionsReached:
    - os.chmod
    - importlib.import_module
    - os.umask
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - <builtin>.list
    - asyncio.create_task
    - os.utime
    - os.unlink
    - os.geteuid
    - gunicorn.util._setproctitle
    - setproctitle.setproctitle
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - <builtin>.hasattr
    - gunicorn.util.get_username
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - <builtin>.callable
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.getgid
    - <builtin>.getattr
    - <builtin>.set
    - tempfile.mkstemp
    - asyncio.sleep
    - <builtin>.len
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - gunicorn.util.chown
    - gunicorn.util.unlink
    - os.path.isdir
    - os.path.exists
    - random.seed
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - signal.signal
    - os.setuid
    - app.init
    - os.close
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - gunicorn.util.close_on_exec
    - os.fork
    - os.path.join
    - asyncio.set_event_loop
    - os._exit
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - import_path.rsplit
    - heartbeat_task.cancel
    - asyncio.new_event_loop
    - os.setgid
    - <builtin>.isinstance
    - os.fdopen
    - app_paths.append
    - time.time
    - os.urandom
    - os.getuid
    - os.chown
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - os.getegid
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - pwd.getpwuid
    - fcntl.fcntl
    - app.close
    - gunicorn.util.seed
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - os.getpid
    - gunicorn.dirty.worker.DirtyWorker.run
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.start_unix_server
    - gunicorn.dirty.app.load_dirty_app
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.handle_manage_request.<lambda1>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - pid
    - sig
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 1003
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 19
    functionsReached:
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.list
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - os.unlink
    - os.kill
    - writer.close
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fnmatch.fnmatch
    functionSourceFile: fnmatch
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: error_type.title
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.arbiter.DirtyArbiter.manage_workers.<lambda1>
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 7
    argDefaultValues: []
    argNames:
    - self
    - age
    - ppid
    - app_paths
    - cfg
    - log
    - socket_path
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 107
    functionName: gunicorn.dirty.worker.DirtyWorker.__init__
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 18
    functionsReached:
    - os.chown
    - os.getegid
    - tempfile.mkstemp
    - os.umask
    - os.unlink
    - gunicorn.util.chown
    - gunicorn.util.unlink
    - os.geteuid
    - os.close
    - os.path.isdir
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 142
    functionName: gunicorn.dirty.worker.DirtyWorker.init_process
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 18
    functionsReached:
    - os.chmod
    - importlib.import_module
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - asyncio.create_task
    - os.utime
    - os.unlink
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - gunicorn.util.get_username
    - <builtin>.hasattr
    - <builtin>.callable
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.getgid
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.util.set_owner_process
    - os.path.exists
    - random.seed
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - os.setuid
    - app.init
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - gunicorn.util.close_on_exec
    - asyncio.set_event_loop
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - asyncio.new_event_loop
    - import_path.rsplit
    - heartbeat_task.cancel
    - os.setgid
    - <builtin>.isinstance
    - time.time
    - os.urandom
    - os.getuid
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - pwd.getpwuid
    - app.close
    - fcntl.fcntl
    - gunicorn.util.seed
    - os.getpid
    - gunicorn.dirty.worker.DirtyWorker.run
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - asyncio.start_unix_server
    - gunicorn.dirty.app.load_dirty_app
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 8
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - pid
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 1011
    functionName: gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    functionSourceFile: gunicorn.dirty.arbiter
    functionUses: 21
    functionsReached:
    - <builtin>.list
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - os.unlink
    - writer.close
    - os.path.exists
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: task.cancel
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.rmdir
    functionSourceFile: os
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.worker
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.dirty.worker.DirtyWorker
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cfg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 18
    functionName: gunicorn.workers.workertmp.WorkerTmp.__init__
    functionSourceFile: gunicorn.workers.workertmp
    functionUses: 20
    functionsReached:
    - os.chown
    - os.getegid
    - tempfile.mkstemp
    - os.umask
    - os.unlink
    - gunicorn.util.chown
    - gunicorn.util.unlink
    - os.geteuid
    - os.close
    - os.path.isdir
    - os.fdopen
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 135
    functionName: gunicorn.dirty.worker.DirtyWorker.__str__
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 138
    functionName: gunicorn.dirty.worker.DirtyWorker.notify
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 26
    functionsReached:
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: gunicorn.workers.workertmp.WorkerTmp.notify
    functionSourceFile: gunicorn.workers.workertmp
    functionUses: 37
    functionsReached:
    - os.utime
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 49
    functionName: gunicorn.workers.workertmp.WorkerTmp.fileno
    functionSourceFile: ''
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 178
    functionName: gunicorn.dirty.worker.DirtyWorker.init_signals
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 19
    functionsReached:
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 210
    functionName: gunicorn.dirty.worker.DirtyWorker.load_apps
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 19
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - app.init
    - <builtin>.callable
    - import_path.rsplit
    - gunicorn.dirty.app.load_dirty_apps
    - <builtin>.hasattr
    - <builtin>.isinstance
    - gunicorn.dirty.app.load_dirty_app
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 227
    functionName: gunicorn.dirty.worker.DirtyWorker.run
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 19
    functionsReached:
    - os.chmod
    - asyncio.create_task
    - os.utime
    - os.unlink
    - concurrent.futures.ThreadPoolExecutor
    - time.monotonic
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.close
    - os.path.exists
    - asyncio.set_event_loop
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - heartbeat_task.cancel
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - app.close
    - asyncio.start_unix_server
    - asyncio.new_event_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 195
    functionName: gunicorn.dirty.worker.DirtyWorker._signal_handler
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 205
    functionName: gunicorn.dirty.worker.DirtyWorker._shutdown
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_paths
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 281
    functionName: gunicorn.dirty.app.load_dirty_apps
    functionSourceFile: gunicorn.dirty.app
    functionUses: 20
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.callable
    - import_path.rsplit
    - <builtin>.hasattr
    - <builtin>.isinstance
    - gunicorn.dirty.app.load_dirty_app
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.init
    functionSourceFile: <builtin>
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: concurrent.futures.ThreadPoolExecutor
    functionSourceFile: concurrent
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.new_event_loop
    functionSourceFile: asyncio
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.set_event_loop
    functionSourceFile: asyncio
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 249
    functionName: gunicorn.dirty.worker.DirtyWorker._run_async
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 20
    functionsReached:
    - os.chmod
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - asyncio.sleep
    - asyncio.create_task
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - os.unlink
    - heartbeat_task.cancel
    - time.monotonic
    - os.path.exists
    - asyncio.start_unix_server
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 502
    functionName: gunicorn.dirty.worker.DirtyWorker._cleanup
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 20
    functionsReached:
    - gunicorn.workers.workertmp.WorkerTmp.close
    - app.close
    - os.unlink
    - os.path.exists
    - concurrent.futures.ThreadPoolExecutor.shutdown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 282
    functionName: gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 21
    functionsReached:
    - gunicorn.dirty.worker.DirtyWorker.notify
    - asyncio.sleep
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: heartbeat_task.cancel
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - reader
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 288
    functionName: gunicorn.dirty.worker.DirtyWorker.handle_connection
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.decode_header
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - items.append
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.utime
    - reader.readexactly
    - gunicorn.dirty.protocol.make_end_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - gunicorn.dirty.worker.DirtyWorker.handle_request
    - gen.aclose
    - <builtin>.hash
    - <builtin>.super
    - error.to_dict
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.get_running_loop
    - <builtin>.len
    - inspect.isgenerator
    - gen.close
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - loop.run_in_executor
    - writer.drain
    - asyncio.wait_for
    - uuid.uuid4
    - gunicorn.dirty.tlv.TLVEncoder.decode_full
    - <builtin>.object
    - traceback.format_exc
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.protocol.make_response
    - inspect.isasyncgen
    - value.encode
    - gunicorn.dirty.worker.DirtyWorker._stream_async_generator
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - struct.unpack
    - writer.wait_closed
    - gunicorn.dirty.tlv.TLVEncoder.decode
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - writer.close
    - <builtin>.isinstance
    - <builtin>.range
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.errors.DirtyAppError.__init__
    - gunicorn.dirty.worker.DirtyWorker.execute
    - gunicorn.dirty.protocol.make_chunk_message
    - result.update
    - gunicorn.dirty.worker.DirtyWorker._stream_sync_generator
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.BinaryProtocol.read_message_async
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - message
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 315
    functionName: gunicorn.dirty.worker.DirtyWorker.handle_request
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 1
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.utime
    - gunicorn.dirty.protocol.make_end_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - error.to_dict
    - gen.aclose
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.get_running_loop
    - <builtin>.len
    - inspect.isgenerator
    - gen.close
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - loop.run_in_executor
    - writer.drain
    - asyncio.wait_for
    - uuid.uuid4
    - <builtin>.object
    - traceback.format_exc
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - gunicorn.dirty.protocol.make_response
    - inspect.isasyncgen
    - value.encode
    - gunicorn.dirty.worker.DirtyWorker._stream_async_generator
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.errors.DirtyAppError.__init__
    - gunicorn.dirty.worker.DirtyWorker.execute
    - gunicorn.dirty.protocol.make_chunk_message
    - gunicorn.dirty.worker.DirtyWorker._stream_sync_generator
    - gunicorn.dirty.errors.DirtyWorkerError.__init__
    - struct.pack
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - app_path
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 450
    functionName: gunicorn.dirty.worker.DirtyWorker.execute
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 2
    functionsReached:
    - asyncio.get_running_loop
    - asyncio.wait_for
    - loop.run_in_executor
    linkageType: pythonLinkage
    raised:
    - DirtyAppNotFoundError
    - DirtyTimeoutError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isgenerator
    functionSourceFile: inspect
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request_id
    - gen
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 369
    functionName: gunicorn.dirty.worker.DirtyWorker._stream_sync_generator
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.utime
    - gunicorn.dirty.protocol.make_end_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - error.to_dict
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - asyncio.get_running_loop
    - <builtin>.len
    - gen.close
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - <builtin>.object
    - traceback.format_exc
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - value.encode
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.str
    - <builtin>.type
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.errors.DirtyAppError.__init__
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.protocol.make_chunk_message
    - struct.pack
    - loop.run_in_executor
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.isasyncgen
    functionSourceFile: inspect
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 7
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request_id
    - gen
    - writer
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 417
    functionName: gunicorn.dirty.worker.DirtyWorker._stream_async_generator
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 2
    functionsReached:
    - gunicorn.dirty.protocol.BinaryProtocol.encode_status
    - gunicorn.dirty.protocol.BinaryProtocol.encode_error
    - MSG_TYPE_FROM_STR.get
    - gunicorn.dirty.tlv.TLVEncoder.encode
    - <builtin>.list
    - gunicorn.dirty.protocol.BinaryProtocol.encode_chunk
    - os.utime
    - gunicorn.dirty.protocol.make_end_message
    - gunicorn.dirty.protocol.BinaryProtocol.encode_end
    - time.monotonic
    - parts.append
    - error.to_dict
    - gen.aclose
    - <builtin>.hash
    - <builtin>.super
    - gunicorn.dirty.protocol.BinaryProtocol.write_message_async
    - gunicorn.dirty.protocol.BinaryProtocol.encode_manage
    - gunicorn.dirty.protocol.BinaryProtocol.encode_response
    - <builtin>.len
    - gunicorn.dirty.protocol.BinaryProtocol.encode_stash
    - writer.drain
    - gunicorn.dirty.protocol.BinaryProtocol.encode_request
    - traceback.format_exc
    - value.encode
    - writer.write
    - gunicorn.dirty.errors.DirtyError.to_dict
    - message.get
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.dirty.protocol.BinaryProtocol.encode_header
    - <builtin>.isinstance
    - <builtin>.type
    - <builtin>.str
    - <builtin>.bytes
    - value.items
    - gunicorn.dirty.errors.DirtyAppError.__init__
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.dirty.protocol.make_chunk_message
    - struct.pack
    - gunicorn.dirty.protocol.make_error_response
    - gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.object
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 382
    functionName: gunicorn.dirty.worker.DirtyWorker._stream_sync_generator._get_next
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached:
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.next
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: loop.run_in_executor
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gen.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gen.aclose
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.worker.DirtyWorker.execute.<lambda1>
    functionSourceFile: gunicorn.dirty.worker
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: concurrent.futures.ThreadPoolExecutor.shutdown
    functionSourceFile: concurrent
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.close
    functionSourceFile: <builtin>
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 52
    functionName: gunicorn.workers.workertmp.WorkerTmp.close
    functionSourceFile: ''
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.workertmp
    functionSourceFile: gunicorn.workers.workertmp
    functionUses: 0
    functionsReached:
    - platform.system
    - PLATFORM.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: platform.system
    functionSourceFile: platform
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: PLATFORM.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fdopen
    functionSourceFile: os
    functionUses: 21
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.utime
    functionSourceFile: os
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 46
    functionName: gunicorn.workers.workertmp.WorkerTmp.last_update
    functionSourceFile: gunicorn.workers.workertmp
    functionUses: 0
    functionsReached:
    - os.fstat
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.fstat
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.dirty.app
    functionSourceFile: gunicorn.dirty.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: gunicorn.dirty.app.DirtyApp.init
    functionSourceFile: gunicorn.dirty.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - action
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 110
    functionName: gunicorn.dirty.app.DirtyApp.__call__
    functionSourceFile: gunicorn.dirty.app
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - action.startswith
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: action.startswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 131
    functionName: gunicorn.dirty.app.DirtyApp.close
    functionSourceFile: gunicorn.dirty.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: spec.split
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - import_path
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 215
    functionName: gunicorn.dirty.app.load_dirty_app
    functionSourceFile: gunicorn.dirty.app
    functionUses: 21
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - import_path.rsplit
    - <builtin>.hasattr
    - <builtin>.isinstance
    - <builtin>.callable
    linkageType: pythonLinkage
    raised:
    - DirtyAppNotFoundError
    - DirtyAppError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: import_path.rsplit
    functionSourceFile: <builtin>
    functionUses: 25
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.debug
    functionSourceFile: gunicorn.debug
    functionUses: 0
    functionsReached:
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a247f970>
    - <ast.Constant object at 0x7f99a247ff10>
    argNames:
    - self
    - trace_names
    - show_values
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: gunicorn.debug.Spew.__init__
    functionSourceFile: gunicorn.debug
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 4
    IfCount: 8
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - frame
    - event
    - arg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: gunicorn.debug.Spew.__call__
    functionSourceFile: gunicorn.debug
    functionUses: 0
    functionsReached:
    - linecache.getline
    - inspect.getsourcelines
    - line.rstrip
    - _token_spliter.split
    - <builtin>.print
    - filename.endswith
    - details.append
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: filename.endswith
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: linecache.getline
    functionSourceFile: linecache
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: inspect.getsourcelines
    functionSourceFile: inspect
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.rstrip
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: _token_spliter.split
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: details.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a196f8e0>
    - <ast.Constant object at 0x7f99a196fd90>
    argNames:
    - trace_names
    - show_values
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 58
    functionName: gunicorn.debug.spew
    functionSourceFile: gunicorn.debug
    functionUses: 8
    functionsReached:
    - sys.settrace
    - gunicorn.debug.Spew.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.settrace
    functionSourceFile: sys
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: gunicorn.debug.unspew
    functionSourceFile: gunicorn.debug
    functionUses: 0
    functionsReached:
    - sys.settrace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: gunicorn.__main__
    functionSourceFile: gunicorn.__main__
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - gunicorn.util.daemonize.redirect
    - sys.stderr.isatty
    - sys.stderr.flush
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - sys.path.insert
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - module.endswith
    - gunicorn.app.base.Application.get_config_from_module_name
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.stdout.isatty
    - local_conf.items
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - importlib.util.module_from_spec
    - os.environ.copy
    - k.lower
    - ast.literal_eval
    - gunicorn.app.base.Application.run
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - os.environ.get
    - os.open
    - sys.stderr.fileno
    - ast.parse
    - os.setsid
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.closerange
    - os.fork
    - gunicorn.app.wsgiapp.run
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - module.split
    - gunicorn.debug.Spew.__init__
    - parser.has_section
    - sys.stdout.fileno
    - msg.splitlines
    - os.close
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - os.dup2
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - <builtin>.enumerate
    - os.umask
    - os.path.join
    - os._exit
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.get_wsgi_app
    - sys.exit
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - os.path.basename
    - traceback.print_exception
    - gunicorn.app.base.BaseApplication.__init__
    - sys.settrace
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - paste.deploy.loadapp
    - cfg.items
    - <builtin>.len
    - os.set_inheritable
    - importlib.machinery.SourceFileLoader
    - gunicorn.app.base.BaseApplication.load_default_config
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.config.get_default_config_file
    - gunicorn.util.daemonize
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1c33790>
    argNames:
    - prog
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 60
    functionName: gunicorn.app.wsgiapp.run
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 2
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - gunicorn.util.daemonize.redirect
    - sys.stderr.isatty
    - sys.stderr.flush
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - sys.path.insert
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - module.endswith
    - gunicorn.app.base.Application.get_config_from_module_name
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.stdout.isatty
    - local_conf.items
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - importlib.util.module_from_spec
    - os.environ.copy
    - k.lower
    - ast.literal_eval
    - gunicorn.app.base.Application.run
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - os.environ.get
    - os.open
    - sys.stderr.fileno
    - ast.parse
    - os.setsid
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.closerange
    - os.fork
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - module.split
    - gunicorn.debug.Spew.__init__
    - parser.has_section
    - sys.stdout.fileno
    - msg.splitlines
    - os.close
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - os.dup2
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - <builtin>.enumerate
    - os.umask
    - os.path.join
    - os._exit
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.get_wsgi_app
    - sys.exit
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - os.path.basename
    - traceback.print_exception
    - gunicorn.app.base.BaseApplication.__init__
    - sys.settrace
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - paste.deploy.loadapp
    - cfg.items
    - <builtin>.len
    - os.set_inheritable
    - importlib.machinery.SourceFileLoader
    - gunicorn.app.base.BaseApplication.load_default_config
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.config.get_default_config_file
    - gunicorn.util.daemonize
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.app
    functionSourceFile: gunicorn.app
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: -1
    functionName: gunicorn.app.wsgiapp
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - gunicorn.util.daemonize.redirect
    - sys.stderr.isatty
    - sys.stderr.flush
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - sys.path.insert
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - module.endswith
    - gunicorn.app.base.Application.get_config_from_module_name
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.stdout.isatty
    - local_conf.items
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - importlib.util.module_from_spec
    - os.environ.copy
    - k.lower
    - ast.literal_eval
    - gunicorn.app.base.Application.run
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - os.environ.get
    - os.open
    - sys.stderr.fileno
    - ast.parse
    - os.setsid
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.closerange
    - os.fork
    - gunicorn.app.wsgiapp.run
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - module.split
    - gunicorn.debug.Spew.__init__
    - parser.has_section
    - sys.stdout.fileno
    - msg.splitlines
    - os.close
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - os.dup2
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - <builtin>.enumerate
    - os.umask
    - os.path.join
    - os._exit
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.get_wsgi_app
    - sys.exit
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - os.path.basename
    - traceback.print_exception
    - gunicorn.app.base.BaseApplication.__init__
    - sys.settrace
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - paste.deploy.loadapp
    - cfg.items
    - <builtin>.len
    - os.set_inheritable
    - importlib.machinery.SourceFileLoader
    - gunicorn.app.base.BaseApplication.load_default_config
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.config.get_default_config_file
    - gunicorn.util.daemonize
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - parser
    - opts
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 13
    functionName: gunicorn.app.wsgiapp.WSGIApplication.init
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 1
    functionsReached:
    - parser.read
    - os.path.abspath
    - parser.has_section
    - <builtin>.len
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - gunicorn.app.pasterapp.has_logging_config
    - os.path.exists
    - config_uri.split
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: config_uri.split
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - config_file
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 26
    functionName: gunicorn.app.pasterapp.has_logging_config
    functionSourceFile: gunicorn.app.pasterapp
    functionUses: 12
    functionsReached:
    - configparser.ConfigParser
    - parser.read
    - parser.has_section
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: gunicorn.app.wsgiapp.WSGIApplication.load_config
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 9
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - ConfigError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 46
    functionName: gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 12
    functionsReached:
    - importlib.import_module
    - <builtin>.getattr
    - <builtin>.len
    - traceback.print_exception
    - gunicorn.util._called_with_wrong_args
    - gunicorn.util.import_app
    - sys.exc_info
    - ast.literal_eval
    - module.endswith
    - module.split
    - ast.parse
    - os.path.exists
    - <builtin>.isinstance
    - <builtin>.callable
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 49
    functionName: gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 12
    functionsReached:
    - gunicorn.app.pasterapp.get_wsgi_app
    - os.getcwd
    - paste.deploy.loadapp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1b85730>
    - <ast.Constant object at 0x7f99a1b852e0>
    argNames:
    - config_uri
    - name
    - defaults
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 14
    functionName: gunicorn.app.pasterapp.get_wsgi_app
    functionSourceFile: gunicorn.app.pasterapp
    functionUses: 13
    functionsReached:
    - os.getcwd
    - paste.deploy.loadapp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 53
    functionName: gunicorn.app.wsgiapp.WSGIApplication.load
    functionSourceFile: gunicorn.app.wsgiapp
    functionUses: 11
    functionsReached:
    - importlib.import_module
    - traceback.print_exception
    - ast.literal_eval
    - paste.deploy.loadapp
    - <builtin>.callable
    - <builtin>.getattr
    - <builtin>.len
    - module.endswith
    - ast.parse
    - os.path.exists
    - gunicorn.util._called_with_wrong_args
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - <builtin>.isinstance
    - os.getcwd
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.util.import_app
    - sys.exc_info
    - module.split
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2290d90>
    - <ast.Constant object at 0x7f99a2290730>
    argNames:
    - self
    - usage
    - prog
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 21
    functionName: gunicorn.app.base.BaseApplication.__init__
    functionSourceFile: gunicorn.app.base
    functionUses: 4
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - parser.has_section
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - os.environ.copy
    - msg.splitlines
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - <builtin>.super
    - importlib.util.spec_from_file_location
    - gunicorn.config.make_settings
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.app.base.BaseApplication.load_default_config
    - os.path.join
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - <builtin>.str
    - setting.copy
    - gunicorn.config.get_default_config_file
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.exit
    - local_conf.items
    - gunicorn.app.base.BaseApplication.do_load_config
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 12
    IfCount: 7
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 201
    functionName: gunicorn.app.base.Application.run
    functionSourceFile: gunicorn.app.base
    functionUses: 4
    functionsReached:
    - importlib.import_module
    - os.path.abspath
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - gunicorn.util.daemonize.redirect
    - sys.stdout.fileno
    - traceback.print_exception
    - sys.stderr.flush
    - sys.stderr.isatty
    - sys.settrace
    - ast.literal_eval
    - os.close
    - sys.path.insert
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - <builtin>.super
    - traceback.print_exc
    - paste.deploy.loadapp
    - os.environ.get
    - <builtin>.callable
    - <builtin>.getattr
    - os.open
    - os.dup2
    - <builtin>.len
    - sys.stderr.fileno
    - module.endswith
    - ast.parse
    - os.set_inheritable
    - os.path.exists
    - os.setsid
    - gunicorn.util._called_with_wrong_args
    - os.umask
    - os.closerange
    - os.fork
    - gunicorn.debug.spew
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os._exit
    - <builtin>.print
    - <builtin>.isinstance
    - os.getcwd
    - gunicorn.util.daemonize
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.util.import_app
    - sys.exit
    - sys.stdout.isatty
    - sys.exc_info
    - module.split
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - gunicorn.debug.Spew.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.app.base
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 6
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 29
    functionName: gunicorn.app.base.BaseApplication.do_load_config
    functionSourceFile: gunicorn.app.base
    functionUses: 8
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - parser.has_section
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - os.environ.copy
    - msg.splitlines
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - <builtin>.super
    - importlib.util.spec_from_file_location
    - gunicorn.config.make_settings
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.app.base.BaseApplication.load_default_config
    - os.path.join
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - <builtin>.str
    - setting.copy
    - gunicorn.config.get_default_config_file
    - os.getcwd
    - gunicorn.config.Config.__init__
    - os.path.splitext
    - sys.exit
    - local_conf.items
    - os.path.basename
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 41
    functionName: gunicorn.app.base.BaseApplication.load_default_config
    functionSourceFile: gunicorn.app.base
    functionUses: 9
    functionsReached:
    - gunicorn.config.make_settings
    - gunicorn.config.Config.__init__
    - os.environ.copy
    - os.path.basename
    - setting.copy
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 5
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 54
    functionName: gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    functionSourceFile: gunicorn.app.pasterapp
    functionUses: 9
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - parser.has_section
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - msg.splitlines
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - importlib.util.spec_from_file_location
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - os.path.join
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - gunicorn.app.pasterapp.has_logging_config
    - spec.loader.exec_module
    - <builtin>.print
    - os.getcwd
    - gunicorn.config.get_default_config_file
    - os.path.splitext
    - sys.exit
    - local_conf.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - parser
    - opts
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: gunicorn.app.base.BaseApplication.init
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: gunicorn.app.base.BaseApplication.load
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: gunicorn.app.base.BaseApplication.load_config
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 71
    functionName: gunicorn.app.pasterapp.serve.PasterServerApplication.load
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 69
    functionName: gunicorn.app.base.BaseApplication.run
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached:
    - queue.SimpleQueue
    - importlib.import_module
    - gunicorn.arbiter.Arbiter.kill_workers
    - sibling.tmp.close
    - <builtin>.list
    - asyncio.create_task
    - sys.stderr.flush
    - gunicorn.pidfile.Pidfile.__init__
    - threading.Thread
    - <builtin>.sorted
    - <builtin>.hasattr
    - gunicorn.dirty.worker.DirtyWorker._cleanup
    - gunicorn.arbiter.Arbiter.spawn_worker
    - <builtin>.super
    - <builtin>.callable
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker
    - <builtin>.getattr
    - gunicorn.arbiter.Arbiter.kill_worker
    - f.read
    - asyncio.sleep
    - gunicorn.arbiter.Arbiter.__init__
    - gunicorn.workers.workertmp.WorkerTmp.close
    - gunicorn.dirty.arbiter.DirtyArbiter.reap_workers
    - task.cancel
    - gunicorn.util.set_owner_process
    - gunicorn.ctl.server.ControlSocketServer.__init__
    - os.WIFSIGNALED
    - gunicorn.util.getcwd
    - worker.tmp.close
    - gunicorn.ctl.server.ControlSocketServer.stop
    - module.endswith
    - inspect.isclass
    - <builtin>.sum
    - os.waitpid
    - gunicorn.dirty.worker.DirtyWorker.init_signals
    - gunicorn.arbiter.Arbiter.reap_dirty_arbiter
    - os.WEXITSTATUS
    - app.init
    - signals.append
    - os.environ.pop
    - os.WIFEXITED
    - importlib.metadata.distribution
    - gunicorn.dirty.worker.DirtyWorker.init_process
    - logger_class.install
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os.setgid
    - os.getppid
    - <builtin>.range
    - os.getcwd
    - f.write
    - os.getegid
    - msg.format
    - gunicorn.dirty.worker.DirtyWorker._heartbeat_loop
    - gunicorn.util.is_ipv6
    - gunicorn.util.seed
    - gunicorn.dirty.worker.DirtyWorker.run
    - os.kill
    - tempfile.gettempdir
    - asyncio.start_unix_server
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - socket.inet_pton
    - signal.signal
    - gunicorn.arbiter.Arbiter.wait_for_signals
    - gunicorn.arbiter.Arbiter.stop
    - gunicorn.arbiter.Arbiter._get_control_socket_path
    - sock.close
    - gunicorn.dirty.arbiter.DirtyArbiter.manage_workers
    - gunicorn.dirty.app.parse_dirty_app_spec
    - os.utime
    - ast.literal_eval
    - gunicorn.dirty.arbiter.DirtyArbiter.murder_workers
    - setproctitle.setproctitle
    - socket.socket
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - gunicorn.sock.create_sockets
    - gunicorn.dirty.worker.DirtyWorker.__init__
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - concurrent.futures.ThreadPoolExecutor.shutdown
    - os.environ.get
    - os.WTERMSIG
    - os.listdir
    - systemd.listen_fds
    - tempfile.mkstemp
    - gunicorn.arbiter.Arbiter.run
    - gunicorn.config.Config.worker_class
    - gunicorn.arbiter.Arbiter.start
    - os.remove
    - asyncio.get_running_loop
    - gunicorn.util.unlink
    - worker.tmp.last_update
    - ast.parse
    - asyncio.run
    - gunicorn.app.base.BaseApplication.wsgi
    - gunicorn.arbiter.Arbiter.setup
    - gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - gunicorn.util._called_with_wrong_args
    - os.fork
    - gunicorn.arbiter.Arbiter.manage_workers
    - sock.getsockname
    - gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection
    - socket.fromfd
    - writer.close
    - gunicorn.arbiter.Arbiter.reap_workers
    - <builtin>.isinstance
    - gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker
    - gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker
    - gunicorn.dirty.arbiter.DirtyArbiter.stop
    - gunicorn.dirty.stash.set_stash_socket_path
    - gunicorn.dirty.worker.DirtyWorker.notify
    - gunicorn.sock.close_sockets
    - entry_str.rsplit
    - components.pop
    - os.getpid
    - gunicorn.sock.UnixSocket.__init__
    - module.split
    - gunicorn.dirty.app.load_dirty_apps
    - os.initgroups
    - random.random
    - listeners.append
    - asyncio.new_event_loop
    - gunicorn.dirty.app.load_dirty_app
    - os.write
    - gunicorn.arbiter.Arbiter.spawn_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter.__init__
    - gunicorn.dirty.worker.DirtyWorker.load_apps
    - gunicorn.arbiter.Arbiter._get_dirty_pidfile_path
    - uri.endswith
    - os.path.dirname
    - gunicorn.util._setproctitle
    - os.close
    - time.monotonic
    - gunicorn.util.load_entry_point
    - importlib_metadata.distribution
    - os.path.isabs
    - os.geteuid
    - concurrent.futures.ThreadPoolExecutor
    - args.insert
    - log.debug
    - gunicorn.pidfile.Pidfile.rename
    - os.getgid
    - <builtin>.set
    - gunicorn.arbiter.Arbiter.halt
    - gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync
    - gunicorn.util.chown
    - os.path.exists
    - fds.append
    - traceback.format_exc
    - os.rmdir
    - gunicorn.dirty.client.set_dirty_socket_path
    - os.umask
    - gunicorn.util.close_on_exec
    - os.path.join
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os._exit
    - worker.init_process
    - systemd.sd_notify
    - os.fdopen
    - gunicorn.arbiter.Arbiter._start_control_server
    - gunicorn.arbiter.Arbiter.murder_workers
    - time.time
    - gunicorn.arbiter.Arbiter.kill_dirty_arbiter
    - gunicorn.app.pasterapp.get_wsgi_app
    - gunicorn.dirty.arbiter.DirtyArbiter.init_signals
    - gunicorn.dirty.arbiter.DirtyArbiter.kill_worker
    - gunicorn.dirty.worker.DirtyWorker._run_async
    - gunicorn.sock.TCPSocket.set_options
    - gunicorn.arbiter.Arbiter.init_signals
    - fcntl.fcntl
    - sys.exit
    - gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter
    - gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - time.sleep
    - <builtin>.min
    - gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker
    - os.chmod
    - traceback.print_exception
    - gunicorn.arbiter.Arbiter._stop_control_server
    - os.unlink
    - uri.split
    - gunicorn.ctl.handlers.CommandHandlers.__init__
    - gunicorn.util.get_username
    - paste.deploy.loadapp
    - gunicorn.sock._sock_type
    - workers.pop
    - sock.setsockopt
    - os.stat
    - <builtin>.len
    - gunicorn.arbiter.Arbiter.spawn_workers
    - <builtin>.open
    - uri.startswith
    - gunicorn.dirty.arbiter.DirtyArbiter._run_async
    - os.path.isdir
    - gunicorn.arbiter.Arbiter.manage_dirty_arbiter
    - gunicorn.pidfile.Pidfile.unlink
    - gunicorn.util.load_class
    - gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor
    - gunicorn.dirty.arbiter.DirtyArbiter._shutdown
    - gunicorn.ctl.server.ControlSocketServer.start
    - random.seed
    - os.setuid
    - monitor_task.cancel
    - gunicorn.sock.BaseSocket.__init__
    - gunicorn.arbiter.Arbiter.maybe_promote_master
    - tempfile.mkdtemp
    - log.error
    - asyncio.set_event_loop
    - <builtin>.int
    - import_path.rsplit
    - stat.S_ISSOCK
    - gunicorn.dirty.app.get_app_workers_attribute
    - heartbeat_task.cancel
    - <builtin>.print
    - app_paths.append
    - <builtin>.str
    - gunicorn.pidfile.Pidfile.create
    - os.urandom
    - gunicorn.config.Config.logger_class
    - os.getuid
    - worker_class.setup
    - os.chown
    - pwd.getpwuid
    - gunicorn.util.import_app
    - app.close
    - sys.exc_info
    - gunicorn.dirty.arbiter.DirtyArbiter.run
    - os.rename
    - spec.split
    - gunicorn.pidfile.Pidfile.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 83
    functionName: gunicorn.app.base.Application.chdir
    functionSourceFile: gunicorn.app.base
    functionUses: 1
    functionsReached:
    - os.chdir
    - sys.path.insert
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.path.insert
    functionSourceFile: sys
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 92
    functionName: gunicorn.app.base.Application.get_config_from_filename
    functionSourceFile: gunicorn.app.base
    functionUses: 13
    functionsReached:
    - importlib.util.spec_from_file_location
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - importlib.util.module_from_spec
    - <builtin>.vars
    - gunicorn.util.warn
    - sys.stderr.flush
    - os.path.splitext
    - sys.exit
    - msg.splitlines
    - os.path.exists
    - spec.loader.exec_module
    - <builtin>.print
    - traceback.print_exc
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.splitext
    functionSourceFile: os
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.util.spec_from_file_location
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.machinery.SourceFileLoader
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: importlib.util.module_from_spec
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: spec.loader.exec_module
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: traceback.print_exc
    functionSourceFile: traceback
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.vars
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - module_name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: gunicorn.app.base.Application.get_config_from_module_name
    functionSourceFile: gunicorn.app.base
    functionUses: 13
    functionsReached:
    - <builtin>.vars
    - importlib.import_module
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 4
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - location
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 122
    functionName: gunicorn.app.base.Application.load_config_from_module_name_or_filename
    functionSourceFile: gunicorn.app.base
    functionUses: 12
    functionsReached:
    - importlib.import_module
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - msg.splitlines
    - traceback.print_exc
    - importlib.util.spec_from_file_location
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - <builtin>.print
    - os.path.splitext
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: location.startswith
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cfg.items
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - filename
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 151
    functionName: gunicorn.app.base.Application.load_config_from_file
    functionSourceFile: gunicorn.app.base
    functionUses: 11
    functionsReached:
    - importlib.import_module
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - k.lower
    - msg.splitlines
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - traceback.print_exc
    - importlib.util.spec_from_file_location
    - cfg.items
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - location.startswith
    - os.path.exists
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - <builtin>.print
    - os.path.splitext
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 8
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 154
    functionName: gunicorn.app.base.Application.load_config
    functionSourceFile: gunicorn.app.base
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - parser.has_section
    - gunicorn.app.base.Application.get_config_from_filename
    - importlib.util.module_from_spec
    - sys.stderr.flush
    - gunicorn.app.wsgiapp.WSGIApplication.init
    - k.lower
    - msg.splitlines
    - <builtin>.sorted
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - sys.path.insert
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - importlib.util.spec_from_file_location
    - cfg.items
    - gunicorn.app.base.Application.chdir
    - <builtin>.len
    - gunicorn.app.base.Application.get_config_from_module_name
    - argparse.ArgumentParser
    - os.path.exists
    - location.startswith
    - parser.add_argument
    - parser.parse_args
    - importlib.machinery.SourceFileLoader
    - <builtin>.enumerate
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.config.Config.get_cmd_args_from_env
    - os.chdir
    - shlex.split
    - os.path.join
    - configparser.ConfigParser
    - gunicorn.config.Config.set
    - gunicorn.app.pasterapp.has_logging_config
    - spec.loader.exec_module
    - <builtin>.print
    - os.getcwd
    - gunicorn.config.get_default_config_file
    - os.path.splitext
    - sys.exit
    - gunicorn.config.Config.parser
    - config_uri.split
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.app.pasterapp
    functionSourceFile: gunicorn.app.pasterapp
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: paste.deploy.loadapp
    functionSourceFile: paste
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: configparser.ConfigParser
    functionSourceFile: configparser
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.read
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: parser.has_section
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - app
    - global_conf
    - local_conf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 32
    functionName: gunicorn.app.pasterapp.serve
    functionSourceFile: gunicorn.app.pasterapp
    functionUses: 0
    functionsReached:
    - importlib.import_module
    - parser.read
    - os.path.abspath
    - gunicorn.app.base.Application.get_config_from_filename
    - gunicorn.util.daemonize.redirect
    - sys.stderr.isatty
    - sys.stderr.flush
    - gunicorn.app.base.Application.load_config_from_module_name_or_filename
    - sys.path.insert
    - <builtin>.super
    - <builtin>.callable
    - <builtin>.getattr
    - importlib.util.spec_from_file_location
    - module.endswith
    - gunicorn.app.base.Application.get_config_from_module_name
    - gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp
    - os.getcwd
    - gunicorn.config.Config.__init__
    - host.split
    - os.path.splitext
    - sys.stdout.isatty
    - local_conf.items
    - gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp
    - importlib.util.module_from_spec
    - os.environ.copy
    - local_conf.pop
    - k.lower
    - ast.literal_eval
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load
    - gunicorn.app.base.Application.run
    - os.environ.get
    - os.open
    - sys.stderr.fileno
    - ast.parse
    - os.setsid
    - <builtin>.vars
    - gunicorn.util.warn
    - gunicorn.util._called_with_wrong_args
    - os.closerange
    - os.fork
    - <builtin>.isinstance
    - gunicorn.app.wsgiapp.WSGIApplication.load_config
    - setting.copy
    - module.split
    - gunicorn.debug.Spew.__init__
    - parser.has_section
    - sys.stdout.fileno
    - msg.splitlines
    - os.close
    - gunicorn.app.base.Application.load_config_from_file
    - traceback.print_exc
    - os.dup2
    - gunicorn.config.make_settings
    - location.startswith
    - os.path.exists
    - <builtin>.enumerate
    - os.umask
    - os.path.join
    - os._exit
    - gunicorn.config.Config.set
    - spec.loader.exec_module
    - gunicorn.app.pasterapp.get_wsgi_app
    - sys.exit
    - os.path.basename
    - gunicorn.app.wsgiapp.WSGIApplication.load
    - traceback.print_exception
    - gunicorn.app.base.BaseApplication.__init__
    - sys.settrace
    - gunicorn.app.pasterapp.serve.PasterServerApplication.load_config
    - paste.deploy.loadapp
    - cfg.items
    - <builtin>.len
    - os.set_inheritable
    - importlib.machinery.SourceFileLoader
    - gunicorn.app.base.BaseApplication.load_default_config
    - gunicorn.debug.spew
    - configparser.ConfigParser
    - gunicorn.app.pasterapp.has_logging_config
    - <builtin>.print
    - <builtin>.str
    - gunicorn.config.get_default_config_file
    - gunicorn.util.daemonize
    - gunicorn.util.import_app
    - sys.exc_info
    - gunicorn.app.base.BaseApplication.do_load_config
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: local_conf.pop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: host.split
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: local_conf.items
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.gthread
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - cfg
    - sock
    - client
    - server
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: gunicorn.workers.gthread.TConn.__init__
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 49
    functionName: gunicorn.workers.gthread.TConn.init
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - sock.ssl_wrap_socket
    - http.get_parser
    - sock.is_http2_negotiated
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.ssl_wrap_socket
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.is_http2_negotiated
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: http.get_parser
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 78
    functionName: gunicorn.workers.gthread.TConn.set_timeout
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 82
    functionName: gunicorn.workers.gthread.TConn.close
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - util.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: util.close
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 98
    functionName: gunicorn.workers.gthread.PollableMethodQueue.__init__
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: gunicorn.workers.gthread.PollableMethodQueue.init
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - queue.SimpleQueue
    - os.pipe
    - os.set_blocking
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.pipe
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.set_blocking
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 113
    functionName: gunicorn.workers.gthread.PollableMethodQueue.close
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - os.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: gunicorn.workers.gthread.PollableMethodQueue.fileno
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: gunicorn.workers.gthread.PollableMethodQueue.defer
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 2
    functionsReached:
    - os.write
    - functools.partial
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: functools.partial
    functionSourceFile: functools
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a241fca0>
    argNames:
    - self
    - _fileobj
    - max_callbacks
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: gunicorn.workers.gthread.PollableMethodQueue.run_callbacks
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - os.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.read
    functionSourceFile: os
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 172
    functionName: gunicorn.workers.gthread.ThreadWorker.__init__
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - collections.deque
    - <builtin>.super
    - gunicorn.workers.gthread.PollableMethodQueue.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - cfg
    - log
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 185
    functionName: gunicorn.workers.gthread.ThreadWorker.check_config
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - log.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: log.warning
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 192
    functionName: gunicorn.workers.gthread.ThreadWorker.init_process
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - gunicorn.workers.gthread.ThreadWorker.get_thread_pool
    - queue.SimpleQueue
    - os.set_blocking
    - gunicorn.workers.gthread.PollableMethodQueue.init
    - os.pipe
    - concurrent.futures.ThreadPoolExecutor
    - selectors.DefaultSelector
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 198
    functionName: gunicorn.workers.gthread.ThreadWorker.get_thread_pool
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - concurrent.futures.ThreadPoolExecutor
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 202
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_exit
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - os.write
    - functools.partial
    - gunicorn.workers.gthread.PollableMethodQueue.defer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_exit.<lambda1>
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 209
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_quit
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - enabled
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 214
    functionName: gunicorn.workers.gthread.ThreadWorker.set_accept_enabled
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - listener.setblocking
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: listener.setblocking
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 228
    functionName: gunicorn.workers.gthread.ThreadWorker.enqueue_req
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 2
    functionsReached:
    - fs.add_done_callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: -1
    functionName: gunicorn.workers.gthread.ThreadWorker.enqueue_req.<lambda1>
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - os.write
    - functools.partial
    - gunicorn.workers.gthread.PollableMethodQueue.defer
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fs.add_done_callback
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - listener
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 234
    functionName: gunicorn.workers.gthread.ThreadWorker.accept
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - listener.getsockname
    - gunicorn.workers.gthread.TConn.__init__
    - fs.add_done_callback
    - listener.accept
    - gunicorn.workers.gthread.ThreadWorker.enqueue_req
    - client_sock.setblocking
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: listener.accept
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client_sock.setblocking
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: listener.getsockname
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conn
    - client
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 249
    functionName: gunicorn.workers.gthread.ThreadWorker.on_client_socket_readable
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - collections.deque.remove
    - gunicorn.workers.gthread.ThreadWorker.enqueue_req
    - fs.add_done_callback
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.remove
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 257
    functionName: gunicorn.workers.gthread.ThreadWorker.murder_keepalived
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - collections.deque.popleft
    - conn.close
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.popleft
    functionSourceFile: collections
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.close
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 275
    functionName: gunicorn.workers.gthread.ThreadWorker.is_parent_alive
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - os.getppid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 282
    functionName: gunicorn.workers.gthread.ThreadWorker.wait_for_and_dispatch_events
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 13
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 293
    functionName: gunicorn.workers.gthread.ThreadWorker.run
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - gunicorn.workers.gthread.PollableMethodQueue.fileno
    - gunicorn.workers.gthread.ThreadWorker.murder_keepalived
    - gunicorn.workers.base.Worker.notify
    - listener.setblocking
    - gunicorn.workers.gthread.ThreadWorker.wait_for_and_dispatch_events
    - collections.deque.popleft
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - gunicorn.workers.gthread.ThreadWorker.is_parent_alive
    - gunicorn.workers.gthread.ThreadWorker.set_accept_enabled
    - os.close
    - time.monotonic
    - os.getppid
    - gunicorn.workers.gthread.PollableMethodQueue.close
    - conn.close
    - s.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 70
    functionName: gunicorn.workers.base.Worker.notify
    functionSourceFile: gunicorn.workers.base
    functionUses: 9
    functionsReached:
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - conn
    - fs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 340
    functionName: gunicorn.workers.gthread.ThreadWorker.finish_request
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - fs.result
    - fs.cancelled
    - collections.deque.append
    - functools.partial
    - conn.set_timeout
    - conn.sock.setblocking
    - conn.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fs.cancelled
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: fs.result
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.sock.setblocking
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.set_timeout
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: collections.deque.append
    functionSourceFile: collections
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 15
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 358
    functionName: gunicorn.workers.gthread.ThreadWorker.handle
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - stream.send_data
    - gunicorn.workers.gthread.ThreadWorker.handle_request
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.workers.gthread.ThreadWorker.handle_http2
    - h2_conn.cleanup_stream
    - h2_conn.h2_conn.send_headers
    - gunicorn.util.write_nonblock
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - conn.parser.finish_body
    - h2_conn.close
    - textwrap.dedent
    - gunicorn.workers.base.Worker.handle_error
    - gunicorn.http.wsgi.base_environ
    - os.environ.get
    - resp.should_close
    - server.append
    - gunicorn.util.write_error
    - env.update
    - <builtin>.len
    - http.encode
    - util.reraise
    - sock.gettimeout
    - response_headers.append
    - respiter.close
    - environ.update
    - h2_conn.send_error
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - conn.sock.close
    - stream.send_headers
    - sock.send
    - conn.init
    - gunicorn.http.wsgi.default_environ
    - h2_conn.h2_conn.send_data
    - h2_conn.send_trailers
    - logging.getLogger
    - sock.sendall
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - datetime.datetime.now
    - conn.sock.shutdown
    - gunicorn.util.write
    - <builtin>.isinstance
    - gunicorn.workers.gthread.ThreadWorker.handle_http2_request
    - gunicorn.util.make_fail_app.app
    - h2_conn._send_pending_data
    - <builtin>.str
    - data.encode
    - urllib.parse.unquote_to_bytes
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - html.escape
    - sock.setblocking
    - h2_conn.send_response
    - sys.exc_info
    - gunicorn.util.write_chunk
    - <builtin>.next
    - resp.close
    - h2_conn.receive_data
    - name.lower
    - conn.sock.setblocking
    - resp.write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.init
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 11
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 413
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_http2
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - stream.send_data
    - h2_conn.h2_conn.send_headers
    - h2_conn.cleanup_stream
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - h2_conn.close
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - server.append
    - response_headers.append
    - env.update
    - respiter.close
    - <builtin>.len
    - environ.update
    - h2_conn.send_error
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - stream.send_headers
    - sock.send
    - gunicorn.http.wsgi.default_environ
    - h2_conn.h2_conn.send_data
    - h2_conn.send_trailers
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - datetime.datetime.now
    - gunicorn.workers.gthread.ThreadWorker.handle_http2_request
    - <builtin>.isinstance
    - h2_conn._send_pending_data
    - gunicorn.util.make_fail_app.app
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - h2_conn.receive_data
    - name.lower
    - h2_conn.send_response
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 17
    IfCount: 8
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - conn
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 554
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_request
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 1
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - resp.should_close
    - server.append
    - util.reraise
    - env.update
    - <builtin>.len
    - respiter.close
    - environ.update
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - conn.sock.close
    - sock.send
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - datetime.datetime.now
    - conn.sock.shutdown
    - <builtin>.isinstance
    - gunicorn.util.make_fail_app.app
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - sys.exc_info
    - resp.close
    - resp.write
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.parser.finish_body
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.sock.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 26
    ICount: 6
    IfCount: 18
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - req
    - client
    - addr
    - exc
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 200
    functionName: gunicorn.workers.base.Worker.handle_error
    functionSourceFile: gunicorn.workers.base
    functionUses: 7
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.util.write_nonblock
    - <builtin>.hasattr
    - textwrap.dedent
    - gunicorn.http.wsgi.base_environ
    - gunicorn.util.write_error
    - env.update
    - <builtin>.len
    - http.encode
    - sock.gettimeout
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - sock.sendall
    - datetime.datetime.now
    - gunicorn.util.write
    - <builtin>.isinstance
    - data.encode
    - <builtin>.str
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - msg.format
    - html.escape
    - sock.setblocking
    - gunicorn.util.write_chunk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.receive_data
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 16
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - req
    - conn
    - h2_conn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 462
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_http2_request
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 2
    functionsReached:
    - stream.send_data
    - h2_conn.h2_conn.send_headers
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - server.append
    - response_headers.append
    - env.update
    - respiter.close
    - <builtin>.len
    - environ.update
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - stream.send_headers
    - sock.send
    - gunicorn.http.wsgi.default_environ
    - h2_conn.h2_conn.send_data
    - h2_conn.send_trailers
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - datetime.datetime.now
    - <builtin>.isinstance
    - h2_conn._send_pending_data
    - gunicorn.util.make_fail_app.app
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - name.lower
    - h2_conn.send_response
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.send_error
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.cleanup_stream
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.close
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.now
    functionSourceFile: datetime
    functionUses: 20
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 25
    ICount: 6
    IfCount: 17
    argCount: 5
    argDefaultValues: []
    argNames:
    - req
    - sock
    - client
    - server
    - cfg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 161
    functionName: gunicorn.http.wsgi.create
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 14
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - server.append
    - env.update
    - <builtin>.len
    - environ.update
    - hdr_name.replace
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - <builtin>.isinstance
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    linkageType: pythonLinkage
    raised:
    - ConfigurationProblem
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 479
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_http2_request.send_early_hints_h2
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - h2_conn.send_informational
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.send_informational
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - trailers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 488
    functionName: gunicorn.workers.gthread.ThreadWorker.handle_http2_request.send_trailers_h2
    functionSourceFile: gunicorn.workers.gthread
    functionUses: 0
    functionsReached:
    - pending_trailers.extend
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pending_trailers.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: respiter.close
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.h2_conn.send_headers
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn._send_pending_data
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.h2_conn.send_data
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.send_trailers
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: h2_conn.send_response
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.force_close
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.write_file
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.write
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.close
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: resp.should_close
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: util.reraise
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: conn.sock.shutdown
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.http.wsgi
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - re.compile
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a199d610>
    argNames:
    - self
    - filelike
    - blksize
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: gunicorn.http.wsgi.FileWrapper.__init__
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 35
    functionName: gunicorn.http.wsgi.FileWrapper.__getitem__
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cfg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 19
    functionsReached:
    - <builtin>.hasattr
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 60
    functionName: gunicorn.http.wsgi.WSGIErrorsWrapper.write
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - stream.flush
    - stream.write
    - data.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: stream.write
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cfg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 69
    functionName: gunicorn.http.wsgi.base_environ
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 18
    functionsReached:
    - <builtin>.hasattr
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - sock
    - cfg
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 82
    functionName: gunicorn.http.wsgi.default_environ
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 16
    functionsReached:
    - gunicorn.http.wsgi.base_environ
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - logging.getLogger
    - env.update
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: env.update
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - req
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 95
    functionName: gunicorn.http.wsgi.proxy_environ
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 15
    functionsReached:
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - req
    - sock
    - resp
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 110
    functionName: gunicorn.http.wsgi._make_early_hints_callback
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - headers
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: gunicorn.http.wsgi._make_early_hints_callback.send_early_hints
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - value.decode
    - data.encode
    - <builtin>.len
    - sock.sendall
    - gunicorn.util.write_chunk
    - gunicorn.util.write
    - <builtin>.isinstance
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.decode
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.decode
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - req
    - sock
    - cfg
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 263
    functionName: gunicorn.http.wsgi.Response.__init__
    functionSourceFile: ''
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.send
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hdr_name.replace
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.decode
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: server.split
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: server.append
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: path_info.startswith
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: environ.update
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 277
    functionName: gunicorn.http.wsgi.Response.force_close
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 280
    functionName: gunicorn.http.wsgi.Response.should_close
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2316a00>
    argNames:
    - self
    - status
    - headers
    - exc_info
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 291
    functionName: gunicorn.http.wsgi.Response.start_response
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - HEADER_VALUE_RE.fullmatch
    - gunicorn.http.wsgi.Response.process_headers
    - gunicorn.util.is_hoppish
    - header.lower
    - <builtin>.int
    - value.lower
    - gunicorn.util.reraise
    - TOKEN_RE.fullmatch
    - gunicorn.http.wsgi.Response.is_chunked
    - <builtin>.isinstance
    - name.lower
    - value.strip
    linkageType: pythonLinkage
    raised:
    - AssertionError
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 2
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - headers
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 315
    functionName: gunicorn.http.wsgi.Response.process_headers
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 1
    functionsReached:
    - HEADER_VALUE_RE.fullmatch
    - gunicorn.util.is_hoppish
    - header.lower
    - <builtin>.int
    - value.lower
    - TOKEN_RE.fullmatch
    - <builtin>.isinstance
    - name.lower
    - value.strip
    linkageType: pythonLinkage
    raised:
    - InvalidHeaderName
    - TypeError
    - InvalidHeader
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 347
    functionName: gunicorn.http.wsgi.Response.is_chunked
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: TOKEN_RE.fullmatch
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: HEADER_VALUE_RE.fullmatch
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.strip
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.lower
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 364
    functionName: gunicorn.http.wsgi.Response.default_headers
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 5
    functionsReached:
    - gunicorn.util.http_date
    - email.utils.formatdate
    - headers.append
    - gunicorn.http.wsgi.Response.should_close
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 384
    functionName: gunicorn.http.wsgi.Response.send_headers
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 4
    functionsReached:
    - value.encode
    - tosend.extend
    - gunicorn.http.wsgi.Response.default_headers
    - gunicorn.util.http_date
    - sock.sendall
    - <builtin>.len
    - email.utils.formatdate
    - gunicorn.util.write_chunk
    - gunicorn.util.to_bytestring
    - gunicorn.http.wsgi.Response.should_close
    - gunicorn.util.write
    - headers.append
    - <builtin>.isinstance
    - data.encode
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tosend.extend
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - arg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 394
    functionName: gunicorn.http.wsgi.Response.write
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 1
    functionsReached:
    - value.encode
    - tosend.extend
    - gunicorn.http.wsgi.Response.default_headers
    - gunicorn.http.wsgi.Response.send_headers
    - gunicorn.util.http_date
    - <builtin>.len
    - sock.sendall
    - email.utils.formatdate
    - gunicorn.util.write_chunk
    - gunicorn.util.to_bytestring
    - gunicorn.http.wsgi.Response.should_close
    - headers.append
    - gunicorn.util.write
    - <builtin>.isinstance
    - data.encode
    - <builtin>.min
    - time.time
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 417
    functionName: gunicorn.http.wsgi.Response.can_sendfile
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 5
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - respiter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 420
    functionName: gunicorn.http.wsgi.Response.sendfile
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 1
    functionsReached:
    - gunicorn.util.has_fileno
    - gunicorn.http.wsgi.Response.default_headers
    - gunicorn.util.http_date
    - gunicorn.util.to_bytestring
    - gunicorn.http.wsgi.Response.is_chunked
    - <builtin>.hasattr
    - respiter.filelike.fileno
    - <builtin>.len
    - gunicorn.http.wsgi.Response.should_close
    - headers.append
    - os.lseek
    - chunk_size.encode
    - tosend.extend
    - gunicorn.http.wsgi.Response.can_sendfile
    - value.encode
    - gunicorn.http.wsgi.Response.send_headers
    - sock.sendall
    - obj.fileno
    - gunicorn.util.write
    - os.fstat
    - <builtin>.isinstance
    - data.encode
    - time.time
    - email.utils.formatdate
    - gunicorn.util.write_chunk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: respiter.filelike.fileno
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.lseek
    functionSourceFile: os
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chunk_size.encode
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - respiter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 453
    functionName: gunicorn.http.wsgi.Response.write_file
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - gunicorn.util.has_fileno
    - gunicorn.http.wsgi.Response.default_headers
    - gunicorn.util.http_date
    - gunicorn.util.to_bytestring
    - gunicorn.http.wsgi.Response.sendfile
    - gunicorn.http.wsgi.Response.is_chunked
    - <builtin>.hasattr
    - respiter.filelike.fileno
    - <builtin>.len
    - gunicorn.http.wsgi.Response.should_close
    - headers.append
    - os.lseek
    - chunk_size.encode
    - tosend.extend
    - gunicorn.http.wsgi.Response.can_sendfile
    - value.encode
    - gunicorn.http.wsgi.Response.send_headers
    - sock.sendall
    - obj.fileno
    - gunicorn.util.write
    - os.fstat
    - <builtin>.isinstance
    - data.encode
    - time.time
    - email.utils.formatdate
    - gunicorn.http.wsgi.Response.write
    - gunicorn.util.write_chunk
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 458
    functionName: gunicorn.http.wsgi.Response.close
    functionSourceFile: gunicorn.http.wsgi
    functionUses: 0
    functionsReached:
    - value.encode
    - tosend.extend
    - gunicorn.http.wsgi.Response.default_headers
    - gunicorn.http.wsgi.Response.send_headers
    - gunicorn.util.http_date
    - sock.sendall
    - <builtin>.len
    - email.utils.formatdate
    - gunicorn.util.write_chunk
    - gunicorn.util.to_bytestring
    - gunicorn.http.wsgi.Response.should_close
    - headers.append
    - gunicorn.util.write
    - <builtin>.isinstance
    - data.encode
    - time.time
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http.errors
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a247f460>
    argNames:
    - self
    - buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 17
    functionName: gunicorn.http.errors.NoMoreData.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 20
    functionName: gunicorn.http.errors.NoMoreData.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - info
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 25
    functionName: gunicorn.http.errors.ConfigurationProblem.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: gunicorn.http.errors.ConfigurationProblem.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - req
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: gunicorn.http.errors.InvalidRequestLine.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 38
    functionName: gunicorn.http.errors.InvalidRequestLine.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - method
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 43
    functionName: gunicorn.http.errors.InvalidRequestMethod.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 46
    functionName: gunicorn.http.errors.InvalidRequestMethod.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - expect
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 51
    functionName: gunicorn.http.errors.ExpectationFailed.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 54
    functionName: gunicorn.http.errors.ExpectationFailed.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - version
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 59
    functionName: gunicorn.http.errors.InvalidHTTPVersion.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 62
    functionName: gunicorn.http.errors.InvalidHTTPVersion.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1bd0460>
    argNames:
    - self
    - hdr
    - req
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: gunicorn.http.errors.InvalidHeader.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 71
    functionName: gunicorn.http.errors.InvalidHeader.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hdr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 76
    functionName: gunicorn.http.errors.ObsoleteFolding.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 79
    functionName: gunicorn.http.errors.ObsoleteFolding.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hdr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 84
    functionName: gunicorn.http.errors.InvalidHeaderName.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: gunicorn.http.errors.InvalidHeaderName.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - hdr
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: gunicorn.http.errors.UnsupportedTransferCoding.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: gunicorn.http.errors.UnsupportedTransferCoding.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 101
    functionName: gunicorn.http.errors.InvalidChunkSize.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 104
    functionName: gunicorn.http.errors.InvalidChunkSize.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - term
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 109
    functionName: gunicorn.http.errors.ChunkMissingTerminator.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 112
    functionName: gunicorn.http.errors.ChunkMissingTerminator.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - size
    - max_size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: gunicorn.http.errors.LimitRequestLine.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 121
    functionName: gunicorn.http.errors.LimitRequestLine.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 126
    functionName: gunicorn.http.errors.LimitRequestHeaders.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 129
    functionName: gunicorn.http.errors.LimitRequestHeaders.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: gunicorn.http.errors.InvalidProxyLine.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: gunicorn.http.errors.InvalidProxyLine.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 143
    functionName: gunicorn.http.errors.InvalidProxyHeader.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 147
    functionName: gunicorn.http.errors.InvalidProxyHeader.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: gunicorn.http.errors.ForbiddenProxyRequest.__init__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 156
    functionName: gunicorn.http.errors.ForbiddenProxyRequest.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 161
    functionName: gunicorn.http.errors.InvalidSchemeHeaders.__str__
    functionSourceFile: gunicorn.http.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.http.message
    functionSourceFile: gunicorn.http.message
    functionUses: 0
    functionsReached:
    - re.escape
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.escape
    functionSourceFile: re
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - ip_str
    - allow_list
    - networks
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 62
    functionName: gunicorn.http.message._ip_in_allow_list
    functionSourceFile: gunicorn.http.message
    functionUses: 10
    functionsReached:
    - ipaddress.ip_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ipaddress.ip_address
    functionSourceFile: ipaddress
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - cfg
    - unreader
    - peer_addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 83
    functionName: gunicorn.http.message.Message.__init__
    functionSourceFile: gunicorn.http.message
    functionUses: 0
    functionsReached:
    - gunicorn.http.message.Request.parse_request_line
    - gunicorn.http.body.EOFReader.__init__
    - curr.find
    - urllib.parse.urlsplit
    - buf.getvalue
    - chunk_size.rstrip
    - gunicorn.util.split_request_uri
    - value.lower
    - gunicorn.http.message.Request.read_into
    - gunicorn.http.message.Request._parse_proxy_protocol_v2
    - gunicorn.http.message.Message.set_body_reader
    - <builtin>.super
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - match.group
    - gunicorn.http.message.Request._handle_proxy_protocol
    - name.rstrip
    - <builtin>.bytearray
    - curr.split
    - value.append
    - <builtin>.len
    - unreader.read
    - gunicorn.http.body.ChunkedReader.get_data
    - gunicorn.http.message.Request.set_body_reader
    - TOKEN_RE.fullmatch
    - name.upper
    - uri.startswith
    - headers.append
    - socket.inet_ntop
    - buf.write
    - gunicorn.http.body.ChunkedReader.parse_chunk_size
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - gunicorn.http.body.ChunkedReader.parse_trailers
    - gunicorn.http.body.Body.__init__
    - VERSION_RE.fullmatch
    - METHOD_BADCHAR_RE.search
    - gunicorn.http.message.Request.parse
    - line_bytes.split
    - line.split
    - struct.unpack
    - val.lower
    - <builtin>.int
    - gunicorn.http.message.Message.force_close
    - curr.strip
    - gunicorn.http.message.Request._parse_proxy_protocol_v1
    - unreader.unread
    - <builtin>.isinstance
    - buf.extend
    - <builtin>.str
    - value.strip
    - <builtin>.bytes
    - v.strip
    - gunicorn.http.body.ChunkedReader.__init__
    - data.split
    - gunicorn.http.message.Request.proxy_protocol_access_check
    - parts._replace
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - <builtin>.any
    - io.BytesIO
    - gunicorn.http.body.ChunkedReader.parse_chunked
    - data.find
    - gunicorn.http.message.Request.read_line
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    - value.split
    - gunicorn.http.body.LengthReader.__init__
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unreader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 334
    functionName: gunicorn.http.message.Request.parse
    functionSourceFile: gunicorn.http.message
    functionUses: 1
    functionsReached:
    - gunicorn.http.message.Request.parse_request_line
    - curr.find
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - value.lower
    - gunicorn.http.message.Request.read_into
    - gunicorn.http.message.Request._parse_proxy_protocol_v2
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - match.group
    - gunicorn.http.message.Request._handle_proxy_protocol
    - name.rstrip
    - <builtin>.bytearray
    - curr.split
    - value.append
    - <builtin>.len
    - unreader.read
    - TOKEN_RE.fullmatch
    - name.upper
    - uri.startswith
    - headers.append
    - socket.inet_ntop
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - VERSION_RE.fullmatch
    - METHOD_BADCHAR_RE.search
    - line_bytes.split
    - line.split
    - struct.unpack
    - <builtin>.int
    - curr.strip
    - gunicorn.http.message.Request._parse_proxy_protocol_v1
    - <builtin>.isinstance
    - buf.extend
    - value.strip
    - <builtin>.str
    - <builtin>.bytes
    - data.split
    - gunicorn.http.message.Request.proxy_protocol_access_check
    - parts._replace
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - data.find
    - gunicorn.http.message.Request.read_line
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    - socket.inet_pton
    linkageType: pythonLinkage
    raised:
    - LimitRequestHeaders
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 1
    IfCount: 15
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 234
    functionName: gunicorn.http.message.Message.set_body_reader
    functionSourceFile: gunicorn.http.message
    functionUses: 1
    functionsReached:
    - gunicorn.http.body.EOFReader.__init__
    - curr.find
    - buf.getvalue
    - chunk_size.rstrip
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - unreader.read
    - gunicorn.http.body.ChunkedReader.get_data
    - TOKEN_RE.fullmatch
    - buf.write
    - name.upper
    - headers.append
    - gunicorn.http.body.ChunkedReader.parse_chunk_size
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - gunicorn.http.body.ChunkedReader.parse_trailers
    - gunicorn.http.body.Body.__init__
    - val.lower
    - line.split
    - <builtin>.int
    - gunicorn.http.message.Message.force_close
    - curr.strip
    - unreader.unread
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - v.strip
    - gunicorn.http.body.ChunkedReader.__init__
    - data.split
    - <builtin>.any
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - io.BytesIO
    - gunicorn.http.body.ChunkedReader.parse_chunked
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    - value.split
    - gunicorn.http.body.LengthReader.__init__
    linkageType: pythonLinkage
    raised:
    - UnsupportedTransferCoding
    - InvalidHeader
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 645
    functionName: gunicorn.http.message.Request.set_body_reader
    functionSourceFile: gunicorn.http.message
    functionUses: 1
    functionsReached:
    - gunicorn.http.body.Body.__init__
    - io.BytesIO
    - gunicorn.http.body.LengthReader.__init__
    - <builtin>.isinstance
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 114
    functionName: gunicorn.http.message.Message.force_close
    functionSourceFile: gunicorn.http.message
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unreader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 117
    functionName: gunicorn.http.message.Message.parse
    functionSourceFile: gunicorn.http.message
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 2
    IfCount: 20
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20da190>
    argNames:
    - self
    - data
    - from_trailer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 120
    functionName: gunicorn.http.message.Message.parse_headers
    functionSourceFile: gunicorn.http.message
    functionUses: 7
    functionsReached:
    - curr.find
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - TOKEN_RE.fullmatch
    - name.upper
    - headers.append
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - curr.strip
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - lines.pop
    linkageType: pythonLinkage
    raised:
    - LimitRequestHeaders
    - InvalidSchemeHeaders
    - ObsoleteFolding
    - InvalidHeader
    - InvalidHeaderName
    - ExpectationFailed
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.split
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: cfg.forwarded_allow_networks
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lines.pop
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: curr.find
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: curr.split
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.rstrip
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: curr.strip
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: RFC9110_5_5_INVALID_AND_DANGEROUS.search
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: value.split
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - req
    - unreader
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 13
    functionName: gunicorn.http.body.ChunkedReader.__init__
    functionSourceFile: gunicorn.http.body
    functionUses: 2
    functionsReached:
    - curr.find
    - buf.getvalue
    - chunk_size.rstrip
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - unreader.read
    - gunicorn.http.body.ChunkedReader.get_data
    - TOKEN_RE.fullmatch
    - buf.write
    - name.upper
    - headers.append
    - gunicorn.http.body.ChunkedReader.parse_chunk_size
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - gunicorn.http.body.ChunkedReader.parse_trailers
    - line.split
    - <builtin>.int
    - curr.strip
    - unreader.unread
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - <builtin>.any
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - io.BytesIO
    - gunicorn.http.body.ChunkedReader.parse_chunked
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - reader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 184
    functionName: gunicorn.http.body.Body.__init__
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - length
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 116
    functionName: gunicorn.http.body.LengthReader.__init__
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unreader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: gunicorn.http.body.EOFReader.__init__
    functionSourceFile: gunicorn.http.body
    functionUses: 2
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 294
    functionName: gunicorn.http.message.Message.should_close
    functionSourceFile: gunicorn.http.message
    functionUses: 1
    functionsReached:
    - v.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: v.lower
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20d4d00>
    argNames:
    - self
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 309
    functionName: gunicorn.http.message.Request.__init__
    functionSourceFile: gunicorn.http.message
    functionUses: 1
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22142b0>
    argNames:
    - self
    - unreader
    - buf
    - stop
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 326
    functionName: gunicorn.http.message.Request.get_data
    functionSourceFile: gunicorn.http.message
    functionUses: 0
    functionsReached:
    - unreader.read
    - buf.write
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    - StopIteration
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unreader.read
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buf.write
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.bytearray
    functionSourceFile: <builtin>
    functionUses: 24
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a21f0a00>
    argNames:
    - self
    - unreader
    - buf
    - stop
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 373
    functionName: gunicorn.http.message.Request.read_into
    functionSourceFile: gunicorn.http.message
    functionUses: 7
    functionsReached:
    - unreader.read
    - buf.extend
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    - StopIteration
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - buf
    - mode
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 407
    functionName: gunicorn.http.message.Request._handle_proxy_protocol
    functionSourceFile: gunicorn.http.message
    functionUses: 2
    functionsReached:
    - gunicorn.http.message.Request.read_into
    - gunicorn.http.message.Request._parse_proxy_protocol_v2
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - <builtin>.bytearray
    - <builtin>.len
    - unreader.read
    - socket.inet_ntop
    - line.split
    - struct.unpack
    - <builtin>.int
    - gunicorn.http.message.Request._parse_proxy_protocol_v1
    - <builtin>.isinstance
    - buf.extend
    - <builtin>.str
    - <builtin>.bytes
    - gunicorn.http.message.Request.proxy_protocol_access_check
    - ipaddress.ip_address
    - data.find
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22e2340>
    argNames:
    - self
    - unreader
    - buf
    - limit
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 382
    functionName: gunicorn.http.message.Request.read_line
    functionSourceFile: gunicorn.http.message
    functionUses: 2
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - unreader.read
    - data.find
    - gunicorn.http.message.Request.read_into
    - buf.extend
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - LimitRequestLine
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 0
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 590
    functionName: gunicorn.http.message.Request.parse_request_line
    functionSourceFile: gunicorn.http.message
    functionUses: 2
    functionsReached:
    - match.group
    - VERSION_RE.fullmatch
    - urllib.parse.urlsplit
    - METHOD_BADCHAR_RE.search
    - line_bytes.split
    - <builtin>.len
    - parts._replace
    - <builtin>.int
    - gunicorn.util.split_request_uri
    - TOKEN_RE.fullmatch
    - uri.startswith
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised:
    - InvalidRequestMethod
    - InvalidRequestLine
    - InvalidHTTPVersion
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.find
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buf.extend
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - buf
    - count
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 401
    functionName: gunicorn.http.message.Request.read_bytes
    functionSourceFile: gunicorn.http.message
    functionUses: 0
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - unreader.read
    - gunicorn.http.message.Request.read_into
    - buf.extend
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 429
    functionName: gunicorn.http.message.Request.proxy_protocol_access_check
    functionSourceFile: gunicorn.http.message
    functionUses: 3
    functionsReached:
    - <builtin>.isinstance
    - ipaddress.ip_address
    - gunicorn.http.message._ip_in_allow_list
    linkageType: pythonLinkage
    raised:
    - ForbiddenProxyRequest
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - buf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 497
    functionName: gunicorn.http.message.Request._parse_proxy_protocol_v2
    functionSourceFile: gunicorn.http.message
    functionUses: 3
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - unreader.read
    - struct.unpack
    - gunicorn.http.message.Request.read_into
    - socket.inet_ntop
    - buf.extend
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - InvalidProxyHeader
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - buf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 436
    functionName: gunicorn.http.message.Request._parse_proxy_protocol_v1
    functionSourceFile: gunicorn.http.message
    functionUses: 3
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - unreader.read
    - line.split
    - socket.inet_pton
    - <builtin>.int
    - data.find
    - gunicorn.http.message.Request.read_into
    - <builtin>.isinstance
    - buf.extend
    - <builtin>.str
    - <builtin>.bytes
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised:
    - InvalidProxyLine
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.split
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: socket.inet_ntop
    functionSourceFile: socket
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line_bytes.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: METHOD_BADCHAR_RE.search
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: VERSION_RE.fullmatch
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: match.group
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http.body
    functionSourceFile: gunicorn.http.body
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unreader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 56
    functionName: gunicorn.http.body.ChunkedReader.parse_chunked
    functionSourceFile: gunicorn.http.body
    functionUses: 3
    functionsReached:
    - curr.find
    - buf.getvalue
    - chunk_size.rstrip
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - unreader.read
    - gunicorn.http.body.ChunkedReader.get_data
    - TOKEN_RE.fullmatch
    - buf.write
    - name.upper
    - headers.append
    - gunicorn.http.body.ChunkedReader.parse_chunk_size
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - gunicorn.http.body.ChunkedReader.parse_trailers
    - line.split
    - <builtin>.int
    - curr.strip
    - unreader.unread
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - <builtin>.any
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - io.BytesIO
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    - ChunkMissingTerminator
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 18
    functionName: gunicorn.http.body.ChunkedReader.read
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - io.BytesIO
    - <builtin>.isinstance
    - <builtin>.next
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 40
    functionName: gunicorn.http.body.ChunkedReader.parse_trailers
    functionSourceFile: gunicorn.http.body
    functionUses: 5
    functionsReached:
    - curr.find
    - buf.getvalue
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - gunicorn.http.body.ChunkedReader.get_data
    - unreader.read
    - TOKEN_RE.fullmatch
    - name.upper
    - buf.write
    - headers.append
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - curr.strip
    - unreader.unread
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - io.BytesIO
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buf.getvalue
    functionSourceFile: <builtin>
    functionUses: 22
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - buf
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 108
    functionName: gunicorn.http.body.ChunkedReader.get_data
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - unreader.read
    - buf.write
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: unreader.unread
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20d4100>
    argNames:
    - self
    - unreader
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 77
    functionName: gunicorn.http.body.ChunkedReader.parse_chunk_size
    functionSourceFile: gunicorn.http.body
    functionUses: 4
    functionsReached:
    - curr.find
    - buf.getvalue
    - chunk_size.rstrip
    - value.lower
    - gunicorn.http.message._ip_in_allow_list
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - gunicorn.http.body.ChunkedReader.get_data
    - unreader.read
    - TOKEN_RE.fullmatch
    - buf.write
    - name.upper
    - headers.append
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - gunicorn.http.body.ChunkedReader.parse_trailers
    - line.split
    - <builtin>.int
    - curr.strip
    - unreader.unread
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - <builtin>.any
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - io.BytesIO
    - gunicorn.http.message.Message.parse_headers
    - lines.pop
    linkageType: pythonLinkage
    raised:
    - InvalidChunkSize
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: chunk_size.rstrip
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 120
    functionName: gunicorn.http.body.LengthReader.read
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - buf.tell
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - buf.getvalue
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.unreader.SocketUnreader.chunk
    - io.BytesIO
    - gunicorn.http.unreader.Unreader.unread
    - <builtin>.next
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.http.unreader.IterUnreader.chunk
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 3
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20fa3a0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 19
    functionName: gunicorn.http.unreader.Unreader.read
    functionSourceFile: gunicorn.http.unreader
    functionUses: 10
    functionsReached:
    - gunicorn.http.unreader.SocketUnreader.chunk
    - io.BytesIO
    - <builtin>.next
    - <builtin>.isinstance
    - gunicorn.http.unreader.IterUnreader.chunk
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 4
    IfCount: 7
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b670a0>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: gunicorn.asgi.unreader.AsyncUnreader.read
    functionSourceFile: gunicorn.asgi.unreader
    functionUses: 27
    functionsReached:
    - io.BytesIO
    - <builtin>.isinstance
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: buf.tell
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 84
    functionName: gunicorn.asgi.unreader.AsyncUnreader.unread
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 51
    functionName: gunicorn.http.unreader.Unreader.unread
    functionSourceFile: gunicorn.http.unreader
    functionUses: 10
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 3
    IfCount: 6
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 151
    functionName: gunicorn.http.body.EOFReader.read
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - io.BytesIO
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - ValueError
    - TypeError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 188
    functionName: gunicorn.http.body.Body.__iter__
    functionSourceFile: gunicorn.http.body
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 191
    functionName: gunicorn.http.body.Body.__next__
    functionSourceFile: gunicorn.http.body
    functionUses: 0
    functionsReached:
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - <builtin>.len
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - gunicorn.http.body.LengthReader.read
    - <builtin>.isinstance
    - gunicorn.http.body.Body.readline
    - gunicorn.http.body.Body.getsize
    - gunicorn.http.unreader.Unreader.read
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - data.find
    - <builtin>.next
    - gunicorn.http.unreader.Unreader.unread
    - gunicorn.http.body.ChunkedReader.read
    - ret.append
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1e78130>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 232
    functionName: gunicorn.http.body.Body.readline
    functionSourceFile: gunicorn.http.body
    functionUses: 1
    functionsReached:
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - <builtin>.len
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - gunicorn.http.body.LengthReader.read
    - <builtin>.isinstance
    - gunicorn.http.body.Body.getsize
    - gunicorn.http.unreader.Unreader.read
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - data.find
    - <builtin>.next
    - gunicorn.http.unreader.Unreader.unread
    - gunicorn.http.body.ChunkedReader.read
    - ret.append
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 199
    functionName: gunicorn.http.body.Body.getsize
    functionSourceFile: gunicorn.http.body
    functionUses: 6
    functionsReached:
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - TypeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1c82820>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 208
    functionName: gunicorn.http.body.Body.read
    functionSourceFile: gunicorn.http.body
    functionUses: 3
    functionsReached:
    - buf.tell
    - gunicorn.http.body.Body.getsize
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - buf.getvalue
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.unreader.SocketUnreader.chunk
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - gunicorn.http.unreader.Unreader.unread
    - <builtin>.next
    - buf.write
    - gunicorn.http.body.ChunkedReader.read
    - gunicorn.http.body.LengthReader.read
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.http.unreader.IterUnreader.chunk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ret.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22e2250>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 257
    functionName: gunicorn.http.body.Body.readlines
    functionSourceFile: gunicorn.http.body
    functionUses: 0
    functionsReached:
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - gunicorn.http.body.LengthReader.read
    - <builtin>.isinstance
    - gunicorn.http.body.Body.getsize
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.body.Body.read
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - data.find
    - <builtin>.next
    - gunicorn.http.unreader.Unreader.unread
    - gunicorn.http.body.ChunkedReader.read
    - ret.append
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.base
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.base.Worker
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues: []
    argNames:
    - self
    - age
    - ppid
    - sockets
    - app
    - timeout
    - cfg
    - log
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 38
    functionName: gunicorn.workers.base.Worker.__init__
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - os.chown
    - os.getegid
    - random.randint
    - tempfile.mkstemp
    - os.umask
    - os.unlink
    - gunicorn.util.chown
    - gunicorn.util.unlink
    - os.geteuid
    - os.close
    - os.path.isdir
    - gunicorn.workers.workertmp.WorkerTmp.__init__
    - os.fdopen
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: random.randint
    functionSourceFile: random
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: gunicorn.workers.base.Worker.__str__
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 78
    functionName: gunicorn.workers.base.Worker.run
    functionSourceFile: gunicorn.workers.base
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 14
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 86
    functionName: gunicorn.workers.base.Worker.init_process
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - traceback.print_exception
    - gunicorn.util.to_bytestring
    - gunicorn.util.get_username
    - <builtin>.hasattr
    - signal.siginterrupt
    - os.getgid
    - gunicorn.workers.base.Worker.load_wsgi
    - gunicorn.workers.base.Worker.init_signals
    - gunicorn.util.set_non_blocking
    - gunicorn.util.set_owner_process
    - io.StringIO
    - random.seed
    - gunicorn.workers.base.Worker.run
    - gunicorn.util.make_fail_app
    - os.setuid
    - value.encode
    - gunicorn.workers.workertmp.WorkerTmp.fileno
    - gunicorn.util.close_on_exec
    - os.pipe
    - os.setgid
    - <builtin>.isinstance
    - time.time
    - os.urandom
    - os.getuid
    - signal.set_wakeup_fd
    - pwd.getpwuid
    - tb_string.getvalue
    - fcntl.fcntl
    - gunicorn.util.seed
    - os.getpid
    - os.initgroups
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 10
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 162
    functionName: gunicorn.workers.base.Worker.init_signals
    functionSourceFile: gunicorn.workers.base
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - signal.set_wakeup_fd
    - signal.siginterrupt
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - fname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 123
    functionName: gunicorn.workers.base.Worker.init_process.changed
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - os.write
    - time.sleep
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 146
    functionName: gunicorn.workers.base.Worker.load_wsgi
    functionSourceFile: gunicorn.workers.base
    functionUses: 1
    functionsReached:
    - gunicorn.util.make_fail_app
    - value.encode
    - traceback.print_exception
    - tb_string.getvalue
    - io.StringIO
    - gunicorn.util.to_bytestring
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: io.StringIO
    functionSourceFile: io
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tb_string.getvalue
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signal.siginterrupt
    functionSourceFile: signal
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: signal.set_wakeup_fd
    functionSourceFile: signal
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 182
    functionName: gunicorn.workers.base.Worker.handle_usr1
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 185
    functionName: gunicorn.workers.base.Worker.handle_exit
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 188
    functionName: gunicorn.workers.base.Worker.handle_quit
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - time.sleep
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 195
    functionName: gunicorn.workers.base.Worker.handle_abort
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached:
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - fname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 283
    functionName: gunicorn.workers.base.Worker.handle_winch
    functionSourceFile: gunicorn.workers.base
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http
    functionSourceFile: gunicorn.http
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20fa4f0>
    argNames:
    - cfg
    - source
    - source_addr
    - http2_connection
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 9
    functionName: gunicorn.http.get_parser
    functionSourceFile: gunicorn.http
    functionUses: 7
    functionsReached:
    - <builtin>.getattr
    - gunicorn.http2.connection._import_h2
    - io.BytesIO
    - gunicorn.http.parser.Parser.__init__
    - gunicorn.http.unreader.SocketUnreader.__init__
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - _h2.H2Connection
    - <builtin>.super
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    - gunicorn.http.unreader.IterUnreader.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - cfg
    - source
    - source_addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 15
    functionName: gunicorn.http.parser.Parser.__init__
    functionSourceFile: gunicorn.http.parser
    functionUses: 8
    functionsReached:
    - <builtin>.hasattr
    - <builtin>.super
    - gunicorn.http.unreader.SocketUnreader.__init__
    - gunicorn.http.unreader.IterUnreader.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.uwsgi
    functionSourceFile: gunicorn.uwsgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.uwsgi.parser
    functionSourceFile: gunicorn.uwsgi.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http.parser
    functionSourceFile: gunicorn.http.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1e50f70>
    argNames:
    - self
    - sock
    - max_chunk
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 59
    functionName: gunicorn.http.unreader.SocketUnreader.__init__
    functionSourceFile: gunicorn.http.unreader
    functionUses: 9
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - iterable
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: gunicorn.http.unreader.IterUnreader.__init__
    functionSourceFile: gunicorn.http.unreader
    functionUses: 9
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: gunicorn.http.parser.Parser.__iter__
    functionSourceFile: gunicorn.http.parser
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 30
    functionName: gunicorn.http.parser.Parser.finish_body
    functionSourceFile: gunicorn.http.parser
    functionUses: 1
    functionsReached:
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - gunicorn.http.body.LengthReader.read
    - <builtin>.isinstance
    - gunicorn.http.body.Body.getsize
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.body.Body.read
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - gunicorn.http.unreader.Unreader.unread
    - <builtin>.next
    - gunicorn.http.body.ChunkedReader.read
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 46
    functionName: gunicorn.http.parser.Parser.__next__
    functionSourceFile: gunicorn.http.parser
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - buf.getvalue
    - gunicorn.http.parser.Parser.finish_body
    - gunicorn.http.message.Request.__init__
    - int.from_bytes
    - gunicorn.http.unreader.SocketUnreader.chunk
    - <builtin>.super
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - <builtin>.getattr
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    - <builtin>.len
    - gunicorn.uwsgi.message.UWSGIRequest.set_body_reader
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.uwsgi.message.UWSGIRequest._parse_vars
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.http.body.Body.__init__
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - gunicorn.http.message.Message.should_close
    - req._check_allowed_ip
    - <builtin>.int
    - v.lower
    - gunicorn.http.body.LengthReader.read
    - <builtin>.isinstance
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse
    - gunicorn.uwsgi.message.UWSGIRequest._extract_request_info
    - gunicorn.http.body.Body.getsize
    - req._async_parse
    - gunicorn.uwsgi.message.UWSGIRequest.should_close
    - gunicorn.uwsgi.message.UWSGIRequest.__init__
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.body.Body.read
    - io.BytesIO
    - gunicorn.http.body.EOFReader.read
    - gunicorn.http.unreader.Unreader.unread
    - gunicorn.uwsgi.message.UWSGIRequest.parse
    - <builtin>.next
    - gunicorn.http.body.ChunkedReader.read
    - gunicorn.uwsgi.message.UWSGIRequest._check_allowed_ip
    - gunicorn.http.body.LengthReader.__init__
    - <builtin>.min
    - gunicorn.uwsgi.message.UWSGIRequest._read_exact
    - key.startswith
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 245
    functionName: gunicorn.uwsgi.message.UWSGIRequest.should_close
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a24f3910>
    argNames:
    - self
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 33
    functionName: gunicorn.uwsgi.message.UWSGIRequest.__init__
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 1
    functionsReached:
    - <builtin>.max
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - int.from_bytes
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - <builtin>.getattr
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    - <builtin>.len
    - gunicorn.uwsgi.message.UWSGIRequest.set_body_reader
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.uwsgi.message.UWSGIRequest._parse_vars
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.http.body.Body.__init__
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - req._check_allowed_ip
    - <builtin>.int
    - <builtin>.isinstance
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse
    - gunicorn.uwsgi.message.UWSGIRequest._extract_request_info
    - req._async_parse
    - gunicorn.http.unreader.Unreader.read
    - io.BytesIO
    - gunicorn.http.unreader.Unreader.unread
    - gunicorn.uwsgi.message.UWSGIRequest.parse
    - <builtin>.next
    - gunicorn.uwsgi.message.UWSGIRequest._check_allowed_ip
    - gunicorn.http.body.LengthReader.__init__
    - gunicorn.uwsgi.message.UWSGIRequest._read_exact
    - key.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.http.unreader
    functionSourceFile: gunicorn.http.unreader
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 13
    functionName: gunicorn.http.unreader.Unreader.__init__
    functionSourceFile: gunicorn.http.unreader
    functionUses: 0
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 16
    functionName: gunicorn.http.unreader.Unreader.chunk
    functionSourceFile: gunicorn.http.unreader
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 73
    functionName: gunicorn.http.unreader.IterUnreader.chunk
    functionSourceFile: gunicorn.http.unreader
    functionUses: 11
    functionsReached:
    - <builtin>.next
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 64
    functionName: gunicorn.http.unreader.SocketUnreader.chunk
    functionSourceFile: ''
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.uwsgi.message
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 72
    functionName: gunicorn.uwsgi.message.UWSGIRequest._check_allowed_ip
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised:
    - ForbiddenUWSGIRequest
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 3
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - unreader
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 91
    functionName: gunicorn.uwsgi.message.UWSGIRequest.parse
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 2
    functionsReached:
    - buf.getvalue
    - gunicorn.http.unreader.SocketUnreader.chunk
    - int.from_bytes
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - buf.tell
    - <builtin>.len
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.uwsgi.message.UWSGIRequest._parse_vars
    - gunicorn.http.unreader.IterUnreader.chunk
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - <builtin>.isinstance
    - gunicorn.uwsgi.message.UWSGIRequest._extract_request_info
    - gunicorn.http.unreader.Unreader.read
    - io.BytesIO
    - gunicorn.http.unreader.Unreader.unread
    - <builtin>.next
    - gunicorn.uwsgi.message.UWSGIRequest._read_exact
    - key.startswith
    linkageType: pythonLinkage
    raised:
    - InvalidUWSGIHeader
    - UnsupportedModifier
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1bd0610>
    argNames:
    - cls
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 65
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 4
    functionsReached:
    - req._async_parse
    - req._check_allowed_ip
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 232
    functionName: gunicorn.uwsgi.message.UWSGIRequest.set_body_reader
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - gunicorn.http.body.Body.__init__
    - <builtin>.int
    - io.BytesIO
    - gunicorn.http.body.LengthReader.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 87
    functionName: gunicorn.uwsgi.message.UWSGIRequest.force_close
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - unreader
    - size
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 118
    functionName: gunicorn.uwsgi.message.UWSGIRequest._read_exact
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 3
    functionsReached:
    - buf.tell
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - <builtin>.len
    - buf.getvalue
    - gunicorn.http.unreader.Unreader.read
    - gunicorn.http.unreader.SocketUnreader.chunk
    - io.BytesIO
    - gunicorn.http.unreader.Unreader.unread
    - <builtin>.next
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.http.unreader.IterUnreader.chunk
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: int.from_bytes
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 1
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 138
    functionName: gunicorn.uwsgi.message.UWSGIRequest._parse_vars
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 4
    functionsReached:
    - <builtin>.len
    - int.from_bytes
    linkageType: pythonLinkage
    raised:
    - InvalidUWSGIHeader
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 4
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 177
    functionName: gunicorn.uwsgi.message.UWSGIRequest._extract_request_info
    functionSourceFile: gunicorn.uwsgi.message
    functionUses: 4
    functionsReached:
    - key.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: key.startswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.uwsgi.errors
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22dc0d0>
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 19
    functionName: gunicorn.uwsgi.errors.InvalidUWSGIHeader.__init__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 23
    functionName: gunicorn.uwsgi.errors.InvalidUWSGIHeader.__str__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - modifier
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 30
    functionName: gunicorn.uwsgi.errors.UnsupportedModifier.__init__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 34
    functionName: gunicorn.uwsgi.errors.UnsupportedModifier.__str__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: gunicorn.uwsgi.errors.ForbiddenUWSGIRequest.__init__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 45
    functionName: gunicorn.uwsgi.errors.ForbiddenUWSGIRequest.__str__
    functionSourceFile: gunicorn.uwsgi.errors
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.geventlet
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - warnings.warn
    - <builtin>.getattr
    - eventlet.monkey_patch
    - packaging.version.parse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: packaging.version.parse
    functionSourceFile: packaging
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.monkey_patch
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 2
    IfCount: 7
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1e50790>
    - <ast.Constant object at 0x7f99a1e50940>
    argNames:
    - self
    - file
    - offset
    - count
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 55
    functionName: gunicorn.workers.geventlet._eventlet_socket_sendfile
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - <builtin>.memoryview
    - <builtin>.len
    - file.seek
    - <builtin>.hasattr
    - <builtin>.min
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: file.seek
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.memoryview
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - sock
    - handle
    - concurrency
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 93
    functionName: gunicorn.workers.geventlet._eventlet_serve
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - pool.spawn
    - sock.close
    - eventlet.greenthread.getcurrent
    - pool.waitall
    - gt.link
    - sock.accept
    - eventlet.greenpool.GreenPool
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.greenpool.GreenPool
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.greenthread.getcurrent
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.accept
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pool.spawn
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gt.link
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: pool.waitall
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - client
    - server
    - conn
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: gunicorn.workers.geventlet._eventlet_stop
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - sys.exc_info
    - eventlet.greenthread.kill
    - conn.close
    - client.wait
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.wait
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.greenthread.kill
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 134
    functionName: gunicorn.workers.geventlet.patch_sendfile
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 2
    functionsReached:
    - <builtin>.hasattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 150
    functionName: gunicorn.workers.geventlet.EventletWorker.patch
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 1
    functionsReached:
    - <builtin>.hasattr
    - eventlet.hubs.use_hub
    - gunicorn.workers.geventlet.patch_sendfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.hubs.use_hub
    functionSourceFile: eventlet
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - respiter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 158
    functionName: gunicorn.workers.geventlet.EventletWorker.is_already_handled
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - <builtin>.super
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 167
    functionName: gunicorn.workers.geventlet.EventletWorker.init_process
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - eventlet.hubs.use_hub
    - <builtin>.super
    - gunicorn.workers.geventlet.EventletWorker.patch
    - <builtin>.hasattr
    - gunicorn.workers.geventlet.patch_sendfile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 175
    functionName: gunicorn.workers.geventlet.EventletWorker.handle_quit
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - eventlet.spawn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.spawn
    functionSourceFile: eventlet
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 178
    functionName: gunicorn.workers.geventlet.EventletWorker.handle_usr1
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - eventlet.spawn
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 181
    functionName: gunicorn.workers.geventlet.EventletWorker.timeout_ctx
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - eventlet.Timeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.Timeout
    functionSourceFile: eventlet
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - listener
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 184
    functionName: gunicorn.workers.geventlet.EventletWorker.handle
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - gunicorn.sock.ssl_wrap_socket
    - <builtin>.super
    - conf.ssl_context
    - gunicorn.sock.ssl_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 9
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 189
    functionName: gunicorn.workers.geventlet.EventletWorker.run
    functionSourceFile: gunicorn.workers.geventlet
    functionUses: 0
    functionsReached:
    - a.wait
    - gunicorn.workers.base.Worker.notify
    - eventlet.sleep
    - functools.partial
    - eventlet.greenio.GreenSocket.setblocking
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - eventlet.StopServe
    - a.kill
    - eventlet.spawn
    - eventlet.Timeout
    - time.monotonic
    - acceptors.append
    - eventlet.greenio.GreenSocket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.greenio.GreenSocket
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.greenio.GreenSocket.setblocking
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: acceptors.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.sleep
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: eventlet.StopServe
    functionSourceFile: eventlet
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: a.kill
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: a.wait
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.base_async
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 0
    functionsReached:
    - <builtin>.object
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 22
    functionName: gunicorn.workers.base_async.AsyncWorker.__init__
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 26
    functionName: gunicorn.workers.base_async.AsyncWorker.timeout_ctx
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - NotImplementedError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - respiter
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: gunicorn.workers.base_async.AsyncWorker.is_already_handled
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 19
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - listener
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 33
    functionName: gunicorn.workers.base_async.AsyncWorker.handle
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 0
    functionsReached:
    - gunicorn.sock.is_http2_negotiated
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - gunicorn.http2.connection.HTTP2ServerConnection.initiate_connection
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - gunicorn.util.write_error
    - env.update
    - gunicorn.http2.request.HTTP2Request.__init__
    - environ.update
    - gunicorn.http2.connection.HTTP2ServerConnection.send_response
    - client.close
    - gunicorn.util.unquote_to_wsgi_str
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - sock.send
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - gunicorn.http.get_parser
    - completed_requests.append
    - datetime.datetime.now
    - gunicorn.util.make_fail_app.app
    - <builtin>.range
    - gunicorn.http2.connection._import_h2
    - gunicorn.http2.connection.HTTP2ServerConnection.send_error
    - stream.get_regular_headers
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - pseudo.get
    - host.split
    - gunicorn.util.write_chunk
    - resp.close
    - name.lower
    - gunicorn.workers.base_async.AsyncWorker.handle_http2_request
    - stream.receive_data
    - sock.close
    - sel.register
    - sel.close
    - client.do_handshake
    - gunicorn.http2.connection.HTTP2ServerConnection.send_data
    - stream.reset
    - gunicorn.workers.base.Worker.handle_error
    - os.environ.get
    - sel.select
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - ssl_socket.selected_alpn_protocol
    - response_headers.append
    - http.encode
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_event
    - name.upper
    - resp.write_file
    - server.split
    - headers.append
    - listener.getsockname
    - stream.update_priority
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended
    - gunicorn.http.wsgi.proxy_environ
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - resp.force_close
    - <builtin>.isinstance
    - urllib.parse.unquote_to_bytes
    - gunicorn.sock.get_negotiated_protocol
    - html.escape
    - sock.setblocking
    - io.BytesIO
    - gunicorn.http.unreader.SocketUnreader.__init__
    - stream.get_pseudo_headers
    - <builtin>.max
    - gunicorn.util.write_nonblock
    - server.append
    - sock.gettimeout
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - gunicorn.util.close
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset
    - gunicorn.http.wsgi.default_environ
    - sock.sendall
    - message.encode
    - gunicorn.util.write
    - sock.shutdown
    - selectors.DefaultSelector
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated
    - gunicorn.http2.connection.HTTP2ServerConnection.close
    - stream.get_request_body
    - gunicorn.http2.request.HTTP2Body.__init__
    - <builtin>.min
    - stream.send_data
    - urllib.parse.urlsplit
    - gunicorn.workers.base_async.AsyncWorker.is_already_handled
    - gunicorn.util.split_request_uri
    - path_info.startswith
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received
    - gunicorn.http.unreader.IterUnreader.__init__
    - resp.should_close
    - <builtin>.len
    - respiter.close
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - uri.startswith
    - gunicorn.workers.base_async.AsyncWorker.timeout_ctx
    - gunicorn.workers.base_async.AsyncWorker.handle_http2
    - stream.send_headers
    - stream.receive_trailers
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.util.reraise
    - _h2.H2Connection
    - data.encode
    - <builtin>.str
    - gunicorn.http2.connection.HTTP2ServerConnection.receive_data
    - parts._replace
    - stream.close
    - gunicorn.workers.base_async.AsyncWorker.handle_request
    - sys.exc_info
    - <builtin>.next
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.do_handshake
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - listener
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 103
    functionName: gunicorn.workers.base_async.AsyncWorker.handle_http2
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 1
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - client.decode
    - _h2_config.H2Configuration
    - gunicorn.http2.connection.HTTP2ServerConnection.initiate_connection
    - <builtin>.hasattr
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received
    - <builtin>.super
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - env.update
    - gunicorn.http2.request.HTTP2Request.__init__
    - environ.update
    - gunicorn.http2.connection.HTTP2ServerConnection.send_response
    - gunicorn.util.unquote_to_wsgi_str
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - sock.send
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - gunicorn.http.get_parser
    - completed_requests.append
    - datetime.datetime.now
    - gunicorn.util.make_fail_app.app
    - <builtin>.range
    - gunicorn.http2.connection._import_h2
    - gunicorn.http2.connection.HTTP2ServerConnection.send_error
    - stream.get_regular_headers
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - pseudo.get
    - host.split
    - name.lower
    - gunicorn.workers.base_async.AsyncWorker.handle_http2_request
    - stream.receive_data
    - sel.register
    - sel.close
    - gunicorn.http2.connection.HTTP2ServerConnection.send_data
    - stream.reset
    - os.environ.get
    - sel.select
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - response_headers.append
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_event
    - name.upper
    - headers.append
    - server.split
    - listener.getsockname
    - stream.update_priority
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended
    - gunicorn.http.wsgi.proxy_environ
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - <builtin>.isinstance
    - urllib.parse.unquote_to_bytes
    - io.BytesIO
    - stream.get_pseudo_headers
    - gunicorn.http.unreader.SocketUnreader.__init__
    - <builtin>.max
    - server.append
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset
    - gunicorn.http.wsgi.default_environ
    - message.encode
    - selectors.DefaultSelector
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated
    - stream.get_request_body
    - gunicorn.http2.connection.HTTP2ServerConnection.close
    - <builtin>.min
    - gunicorn.http2.request.HTTP2Body.__init__
    - stream.send_data
    - urllib.parse.urlsplit
    - gunicorn.workers.base_async.AsyncWorker.is_already_handled
    - gunicorn.util.split_request_uri
    - gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received
    - path_info.startswith
    - gunicorn.http.unreader.IterUnreader.__init__
    - <builtin>.len
    - respiter.close
    - hdr_name.replace
    - uri.startswith
    - gunicorn.http.wsgi.create
    - stream.send_headers
    - stream.receive_trailers
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - _h2.H2Connection
    - <builtin>.str
    - gunicorn.http2.connection.HTTP2ServerConnection.receive_data
    - parts._replace
    - stream.close
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 14
    IfCount: 8
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - listener_name
    - req
    - sock
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 199
    functionName: gunicorn.workers.base_async.AsyncWorker.handle_request
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 1
    functionsReached:
    - gunicorn.workers.base_async.AsyncWorker.is_already_handled
    - sock.close
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - resp.should_close
    - server.append
    - env.update
    - <builtin>.len
    - respiter.close
    - environ.update
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - gunicorn.util.reraise
    - datetime.datetime.now
    - sock.shutdown
    - <builtin>.isinstance
    - gunicorn.util.make_fail_app.app
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - sys.exc_info
    - resp.close
    - resp.write
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 9
    IfCount: 6
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - listener_name
    - req
    - sock
    - addr
    - h2_conn
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 144
    functionName: gunicorn.workers.base_async.AsyncWorker.handle_http2_request
    functionSourceFile: gunicorn.workers.base_async
    functionUses: 2
    functionsReached:
    - stream.send_data
    - gunicorn.workers.base_async.AsyncWorker.is_already_handled
    - gunicorn.http.wsgi.Response.__init__
    - sel.register
    - path_info.startswith
    - gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window
    - client.decode
    - sel.close
    - <builtin>.hasattr
    - gunicorn.http2.connection.HTTP2ServerConnection.send_data
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - sel.select
    - server.append
    - env.update
    - <builtin>.len
    - respiter.close
    - environ.update
    - gunicorn.http2.connection.HTTP2ServerConnection.send_response
    - response_headers.append
    - gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - stream.send_headers
    - sock.send
    - gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - datetime.datetime.now
    - <builtin>.isinstance
    - <builtin>.range
    - gunicorn.util.make_fail_app.app
    - selectors.DefaultSelector
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - stream.close
    - name.lower
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sock.shutdown
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.ggevent
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - packaging.version.parse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 37
    functionName: gunicorn.workers.ggevent.GeventWorker.patch
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 1
    functionsReached:
    - sockets.append
    - gevent.monkey.patch_all
    - s.sock.detach
    - gevent.socket.socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.monkey.patch_all
    functionSourceFile: gevent
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.sock.detach
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.socket.socket
    functionSourceFile: gevent
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sockets.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 47
    functionName: gunicorn.workers.ggevent.GeventWorker.notify
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 1
    functionsReached:
    - os.getppid
    - <builtin>.super
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: gunicorn.workers.ggevent.GeventWorker.timeout_ctx
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - gevent.Timeout
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.Timeout
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 11
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 56
    functionName: gunicorn.workers.ggevent.GeventWorker.run
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - s.setblocking
    - gevent.server.StreamServer.close
    - gevent.server.StreamServer.start
    - <builtin>.hasattr
    - <builtin>.super
    - gunicorn.http.wsgi.base_environ
    - environ.update
    - gevent.sleep
    - servers.append
    - gevent.server.StreamServer
    - gevent.pool.Pool
    - logging.getLogger
    - functools.partial
    - os.getppid
    - time.time
    - gevent.server.StreamServer.pool.free_count
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.workers.ggevent.GeventWorker.notify
    - gevent.server.StreamServer.stop
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.setblocking
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.pool.Pool
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.server.StreamServer
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.server.StreamServer.start
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: servers.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.sleep
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.server.StreamServer.close
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.server.StreamServer.pool.free_count
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.server.StreamServer.stop
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - listener
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 116
    functionName: gunicorn.workers.ggevent.GeventWorker.handle
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - client.setblocking
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.setblocking
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - listener_name
    - req
    - sock
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 122
    functionName: gunicorn.workers.ggevent.GeventWorker.handle_request
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 130
    functionName: gunicorn.workers.ggevent.GeventWorker.handle_quit
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - gevent.spawn
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.spawn
    functionSourceFile: gevent
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 135
    functionName: gunicorn.workers.ggevent.GeventWorker.handle_usr1
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - gevent.spawn
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 140
    functionName: gunicorn.workers.ggevent.GeventWorker.init_process
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - sockets.append
    - gevent.hub.reinit
    - gunicorn.workers.ggevent.GeventWorker.patch
    - gevent.monkey.patch_all
    - s.sock.detach
    - <builtin>.super
    - gevent.socket.socket
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.hub.reinit
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - clength
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 152
    functionName: gunicorn.workers.ggevent.GeventResponse.__init__
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 160
    functionName: gunicorn.workers.ggevent.PyWSGIHandler.log_request
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - gevent.pywsgi.WSGIHandler.status.decode
    - gunicorn.workers.ggevent.GeventResponse.__init__
    - datetime.datetime.fromtimestamp
    - gevent.pywsgi.WSGIHandler.headers.items
    - gevent.pywsgi.WSGIHandler.server.log.access
    - <builtin>.hasattr
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: datetime.datetime.fromtimestamp
    functionSourceFile: datetime
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.pywsgi.WSGIHandler.status.decode
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.pywsgi.WSGIHandler.headers.items
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gevent.pywsgi.WSGIHandler.server.log.access
    functionSourceFile: gevent
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 176
    functionName: gunicorn.workers.ggevent.PyWSGIHandler.get_environ
    functionSourceFile: gunicorn.workers.ggevent
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.sync
    functionSourceFile: gunicorn.workers.sync
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - listener
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 27
    functionName: gunicorn.workers.sync.SyncWorker.accept
    functionSourceFile: gunicorn.workers.sync
    functionUses: 3
    functionsReached:
    - gunicorn.sock.ssl_wrap_socket
    - sock.close
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - gunicorn.util.write_nonblock
    - path_info.startswith
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.unreader.IterUnreader.__init__
    - gunicorn.workers.base.Worker.handle_error
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - os.environ.get
    - server.append
    - gunicorn.util.write_error
    - env.update
    - <builtin>.len
    - http.encode
    - client.setblocking
    - sock.gettimeout
    - respiter.close
    - environ.update
    - hdr_name.replace
    - client.close
    - gunicorn.util.close
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.workers.sync.SyncWorker.handle_request
    - gunicorn.http.get_parser
    - gunicorn.http.wsgi.default_environ
    - listener.getsockname
    - client.shutdown
    - logging.getLogger
    - sock.sendall
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.util.close_on_exec
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - gunicorn.util.reraise
    - gunicorn.workers.sync.SyncWorker.handle
    - datetime.datetime.now
    - gunicorn.util.write
    - <builtin>.isinstance
    - gunicorn.util.make_fail_app.app
    - data.encode
    - <builtin>.str
    - _h2.H2Connection
    - gunicorn.http2.connection._import_h2
    - urllib.parse.unquote_to_bytes
    - conf.ssl_context
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.sock.ssl_context
    - listener.accept
    - host.split
    - html.escape
    - fcntl.fcntl
    - sock.setblocking
    - gunicorn.util.write_chunk
    - sys.exc_info
    - io.BytesIO
    - <builtin>.next
    - resp.close
    - gunicorn.http.unreader.SocketUnreader.__init__
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 13
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - listener
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 135
    functionName: gunicorn.workers.sync.SyncWorker.handle
    functionSourceFile: gunicorn.workers.sync
    functionUses: 4
    functionsReached:
    - gunicorn.sock.ssl_wrap_socket
    - sock.close
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - gunicorn.util.write_nonblock
    - path_info.startswith
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.unreader.IterUnreader.__init__
    - gunicorn.workers.base.Worker.handle_error
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - os.environ.get
    - server.append
    - gunicorn.util.write_error
    - env.update
    - <builtin>.len
    - http.encode
    - sock.gettimeout
    - respiter.close
    - environ.update
    - hdr_name.replace
    - client.close
    - gunicorn.util.close
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.workers.sync.SyncWorker.handle_request
    - gunicorn.http.get_parser
    - gunicorn.http.wsgi.default_environ
    - listener.getsockname
    - client.shutdown
    - logging.getLogger
    - sock.sendall
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - gunicorn.util.reraise
    - datetime.datetime.now
    - gunicorn.util.write
    - <builtin>.isinstance
    - gunicorn.util.make_fail_app.app
    - data.encode
    - <builtin>.str
    - _h2.H2Connection
    - gunicorn.http2.connection._import_h2
    - urllib.parse.unquote_to_bytes
    - conf.ssl_context
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.sock.ssl_context
    - host.split
    - html.escape
    - sock.setblocking
    - gunicorn.util.write_chunk
    - sys.exc_info
    - io.BytesIO
    - <builtin>.next
    - resp.close
    - gunicorn.http.unreader.SocketUnreader.__init__
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 2
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 33
    functionName: gunicorn.workers.sync.SyncWorker.wait
    functionSourceFile: gunicorn.workers.sync
    functionUses: 3
    functionsReached:
    - gunicorn.workers.base.Worker.notify
    - os.read
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - select.select
    - time.monotonic
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: select.select
    functionSourceFile: select
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 52
    functionName: gunicorn.workers.sync.SyncWorker.is_parent_alive
    functionSourceFile: gunicorn.workers.sync
    functionUses: 3
    functionsReached:
    - os.getppid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 59
    functionName: gunicorn.workers.sync.SyncWorker.run_for_one
    functionSourceFile: gunicorn.workers.sync
    functionUses: 1
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - gunicorn.util.write_error
    - env.update
    - environ.update
    - client.close
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.http.get_parser
    - client.shutdown
    - gunicorn.workers.sync.SyncWorker.handle
    - datetime.datetime.now
    - os.getppid
    - gunicorn.util.make_fail_app.app
    - gunicorn.http2.connection._import_h2
    - conf.ssl_context
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.sock.ssl_context
    - gunicorn.workers.sync.SyncWorker.is_parent_alive
    - host.split
    - gunicorn.util.write_chunk
    - resp.close
    - gunicorn.sock.ssl_wrap_socket
    - sock.close
    - os.utime
    - gunicorn.workers.base.Worker.handle_error
    - os.environ.get
    - http.encode
    - client.setblocking
    - gunicorn.workers.sync.SyncWorker.wait
    - resp.write_file
    - server.split
    - listener.getsockname
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - <builtin>.isinstance
    - urllib.parse.unquote_to_bytes
    - html.escape
    - sock.setblocking
    - io.BytesIO
    - gunicorn.http.unreader.SocketUnreader.__init__
    - gunicorn.util.write_nonblock
    - time.monotonic
    - server.append
    - sock.gettimeout
    - gunicorn.util.close
    - gunicorn.http.wsgi.default_environ
    - sock.sendall
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.util.write
    - gunicorn.workers.base.Worker.notify
    - fcntl.fcntl
    - gunicorn.workers.sync.SyncWorker.accept
    - path_info.startswith
    - gunicorn.http.unreader.IterUnreader.__init__
    - <builtin>.len
    - respiter.close
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - gunicorn.workers.sync.SyncWorker.handle_request
    - os.read
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.util.reraise
    - select.select
    - _h2.H2Connection
    - data.encode
    - <builtin>.str
    - listener.accept
    - sys.exc_info
    - <builtin>.next
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - timeout
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 88
    functionName: gunicorn.workers.sync.SyncWorker.run_for_multiple
    functionSourceFile: gunicorn.workers.sync
    functionUses: 1
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - gunicorn.util.write_error
    - env.update
    - environ.update
    - client.close
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.http.get_parser
    - client.shutdown
    - gunicorn.workers.sync.SyncWorker.handle
    - datetime.datetime.now
    - os.getppid
    - gunicorn.util.make_fail_app.app
    - gunicorn.http2.connection._import_h2
    - conf.ssl_context
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.sock.ssl_context
    - gunicorn.workers.sync.SyncWorker.is_parent_alive
    - host.split
    - gunicorn.util.write_chunk
    - resp.close
    - gunicorn.sock.ssl_wrap_socket
    - sock.close
    - os.utime
    - gunicorn.workers.base.Worker.handle_error
    - os.environ.get
    - http.encode
    - client.setblocking
    - gunicorn.workers.sync.SyncWorker.wait
    - resp.write_file
    - server.split
    - listener.getsockname
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - <builtin>.isinstance
    - urllib.parse.unquote_to_bytes
    - html.escape
    - sock.setblocking
    - io.BytesIO
    - gunicorn.http.unreader.SocketUnreader.__init__
    - gunicorn.util.write_nonblock
    - time.monotonic
    - server.append
    - sock.gettimeout
    - gunicorn.util.close
    - gunicorn.http.wsgi.default_environ
    - sock.sendall
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.util.write
    - gunicorn.workers.base.Worker.notify
    - fcntl.fcntl
    - gunicorn.workers.sync.SyncWorker.accept
    - path_info.startswith
    - gunicorn.http.unreader.IterUnreader.__init__
    - <builtin>.len
    - respiter.close
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - gunicorn.workers.sync.SyncWorker.handle_request
    - os.read
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.util.reraise
    - select.select
    - _h2.H2Connection
    - data.encode
    - <builtin>.str
    - listener.accept
    - sys.exc_info
    - <builtin>.next
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 112
    functionName: gunicorn.workers.sync.SyncWorker.run
    functionSourceFile: gunicorn.workers.sync
    functionUses: 0
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - gunicorn.http.parser.Parser.__init__
    - client.decode
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - <builtin>.super
    - textwrap.dedent
    - gunicorn.http.wsgi.base_environ
    - <builtin>.getattr
    - gunicorn.util.write_error
    - env.update
    - environ.update
    - client.close
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - gunicorn.http.get_parser
    - client.shutdown
    - gunicorn.workers.sync.SyncWorker.handle
    - datetime.datetime.now
    - os.getppid
    - gunicorn.util.make_fail_app.app
    - gunicorn.http2.connection._import_h2
    - conf.ssl_context
    - msg.format
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - gunicorn.sock.ssl_context
    - gunicorn.workers.sync.SyncWorker.is_parent_alive
    - host.split
    - gunicorn.util.write_chunk
    - gunicorn.workers.sync.SyncWorker.run_for_multiple
    - resp.close
    - gunicorn.sock.ssl_wrap_socket
    - sock.close
    - os.utime
    - gunicorn.workers.base.Worker.handle_error
    - os.environ.get
    - gunicorn.workers.sync.SyncWorker.run_for_one
    - http.encode
    - client.setblocking
    - gunicorn.workers.sync.SyncWorker.wait
    - resp.write_file
    - server.split
    - listener.getsockname
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - <builtin>.isinstance
    - urllib.parse.unquote_to_bytes
    - html.escape
    - sock.setblocking
    - io.BytesIO
    - gunicorn.http.unreader.SocketUnreader.__init__
    - s.setblocking
    - gunicorn.util.write_nonblock
    - time.monotonic
    - server.append
    - sock.gettimeout
    - gunicorn.util.close
    - gunicorn.http.wsgi.default_environ
    - sock.sendall
    - gunicorn.util.close_on_exec
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.util.write
    - gunicorn.workers.base.Worker.notify
    - fcntl.fcntl
    - gunicorn.workers.sync.SyncWorker.accept
    - path_info.startswith
    - gunicorn.http.unreader.IterUnreader.__init__
    - <builtin>.len
    - respiter.close
    - hdr_name.replace
    - gunicorn.http.wsgi.create
    - gunicorn.workers.sync.SyncWorker.handle_request
    - os.read
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.util.reraise
    - select.select
    - _h2.H2Connection
    - data.encode
    - <builtin>.str
    - listener.accept
    - sys.exc_info
    - <builtin>.next
    - resp.write
    - gunicorn.http2.connection.HTTP2ServerConnection.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 14
    IfCount: 4
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - listener
    - req
    - client
    - addr
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 169
    functionName: gunicorn.workers.sync.SyncWorker.handle_request
    functionSourceFile: gunicorn.workers.sync
    functionUses: 5
    functionsReached:
    - gunicorn.http.wsgi.Response.__init__
    - path_info.startswith
    - client.decode
    - <builtin>.hasattr
    - os.environ.get
    - gunicorn.http.wsgi.base_environ
    - server.append
    - env.update
    - <builtin>.len
    - respiter.close
    - environ.update
    - hdr_name.replace
    - client.close
    - gunicorn.http.wsgi.create
    - resp.write_file
    - server.split
    - gunicorn.util.unquote_to_wsgi_str
    - sock.send
    - listener.getsockname
    - client.shutdown
    - gunicorn.http.wsgi.default_environ
    - logging.getLogger
    - gunicorn.http.wsgi._make_early_hints_callback
    - gunicorn.http.wsgi.proxy_environ
    - resp.force_close
    - gunicorn.util.reraise
    - datetime.datetime.now
    - <builtin>.isinstance
    - gunicorn.util.make_fail_app.app
    - <builtin>.str
    - urllib.parse.unquote_to_bytes
    - gunicorn.http.wsgi.WSGIErrorsWrapper.__init__
    - host.split
    - sys.exc_info
    - resp.close
    - resp.write
    linkageType: pythonLinkage
    raised:
    - StopIteration
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.shutdown
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.gasgi
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 31
    functionName: gunicorn.workers.gasgi.ASGIWorker.__init__
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - cls
    - cfg
    - log
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: gunicorn.workers.gasgi.ASGIWorker.check_config
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - log.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 48
    functionName: gunicorn.workers.gasgi.ASGIWorker.init_process
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - uvloop.new_event_loop
    - gunicorn.workers.gasgi.ASGIWorker._setup_event_loop
    - asyncio.set_event_loop
    - <builtin>.super
    - asyncio.new_event_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: gunicorn.workers.gasgi.ASGIWorker._setup_event_loop
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - uvloop.new_event_loop
    - asyncio.set_event_loop
    - asyncio.new_event_loop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: uvloop.new_event_loop
    functionSourceFile: uvloop
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: gunicorn.workers.gasgi.ASGIWorker.load_wsgi
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - <builtin>.str
    - gunicorn.workers.gasgi.ASGIWorker._make_error_app
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - error_msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 89
    functionName: gunicorn.workers.gasgi.ASGIWorker._make_error_app
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 3
    argDefaultValues: []
    argNames:
    - scope
    - receive
    - send
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 91
    functionName: gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 4
    functionsReached:
    - gunicorn.asgi.lifespan.LifespanManager._send
    - message.get
    - gunicorn.asgi.lifespan.LifespanManager._receive
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: gunicorn.asgi.lifespan.LifespanManager._send
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 5
    functionsReached:
    - message.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 151
    functionName: gunicorn.asgi.lifespan.LifespanManager._receive
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 8
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 111
    functionName: gunicorn.workers.gasgi.ASGIWorker.init_signals
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - signal.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 125
    functionName: gunicorn.workers.gasgi.ASGIWorker.handle_quit_signal
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 134
    functionName: gunicorn.workers.gasgi.ASGIWorker.handle_exit_signal
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 138
    functionName: gunicorn.workers.gasgi.ASGIWorker.handle_usr1_signal
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: gunicorn.workers.gasgi.ASGIWorker.handle_winch_signal
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 146
    functionName: gunicorn.workers.gasgi.ASGIWorker.handle_abort_signal
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - sys.exit
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 152
    functionName: gunicorn.workers.gasgi.ASGIWorker.run
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - server.wait_closed
    - asyncio.create_task
    - gunicorn.workers.gasgi.ASGIWorker._get_ssl_context
    - asyncio.Queue
    - os.utime
    - asyncio.gather
    - gunicorn.asgi.lifespan.LifespanManager._receive
    - time.monotonic
    - <builtin>.getattr
    - asyncio.sleep
    - gunicorn.workers.gasgi.ASGIWorker._cleanup
    - task.cancel
    - asyncio.wait_for
    - gunicorn.asgi.lifespan.LifespanManager.shutdown
    - gunicorn.asgi.lifespan.LifespanManager._run_lifespan
    - message.get
    - gunicorn.asgi.lifespan.LifespanManager.startup
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - asyncio.all_tasks
    - gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app
    - asyncio.Event
    - os.getppid
    - <builtin>.str
    - conf.ssl_context
    - gunicorn.workers.gasgi.ASGIWorker._shutdown
    - gunicorn.workers.base.Worker.notify
    - gunicorn.sock.ssl_context
    - gunicorn.asgi.lifespan.LifespanManager.__init__
    - gunicorn.asgi.lifespan.LifespanManager._send
    - server.close
    - gunicorn.workers.gasgi.ASGIWorker._serve
    - s.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 12
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 161
    functionName: gunicorn.workers.gasgi.ASGIWorker._serve
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 1
    functionsReached:
    - server.wait_closed
    - asyncio.create_task
    - asyncio.Queue
    - gunicorn.workers.gasgi.ASGIWorker._get_ssl_context
    - os.utime
    - gunicorn.asgi.lifespan.LifespanManager._receive
    - time.monotonic
    - <builtin>.getattr
    - asyncio.sleep
    - asyncio.wait_for
    - gunicorn.asgi.lifespan.LifespanManager.shutdown
    - gunicorn.asgi.lifespan.LifespanManager._run_lifespan
    - message.get
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - gunicorn.asgi.lifespan.LifespanManager.startup
    - gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app
    - asyncio.Event
    - os.getppid
    - <builtin>.str
    - conf.ssl_context
    - gunicorn.workers.gasgi.ASGIWorker._shutdown
    - gunicorn.workers.base.Worker.notify
    - gunicorn.sock.ssl_context
    - gunicorn.asgi.lifespan.LifespanManager.__init__
    - gunicorn.asgi.lifespan.LifespanManager._send
    - server.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 272
    functionName: gunicorn.workers.gasgi.ASGIWorker._cleanup
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 1
    functionsReached:
    - task.cancel
    - asyncio.gather
    - asyncio.all_tasks
    - asyncio.wait_for
    - s.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2238310>
    argNames:
    - self
    - app
    - logger
    - state
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: gunicorn.asgi.lifespan.LifespanManager.__init__
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 2
    functionsReached:
    - asyncio.Event
    - asyncio.Queue
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 53
    functionName: gunicorn.asgi.lifespan.LifespanManager.startup
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 2
    functionsReached:
    - gunicorn.asgi.lifespan.LifespanManager._run_lifespan
    - asyncio.create_task
    - gunicorn.asgi.lifespan.LifespanManager._send
    - message.get
    - gunicorn.asgi.lifespan.LifespanManager._receive
    - asyncio.wait_for
    - gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 260
    functionName: gunicorn.workers.gasgi.ASGIWorker._get_ssl_context
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 2
    functionsReached:
    - conf.ssl_context
    - gunicorn.sock.ssl_context
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.workers.gasgi.ASGIWorker._serve.<lambda1>
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 0
    functionsReached:
    - gunicorn.asgi.protocol.ASGIProtocol.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - worker
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 55
    functionName: gunicorn.asgi.protocol.ASGIProtocol.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 10
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 221
    functionName: gunicorn.workers.gasgi.ASGIWorker._shutdown
    functionSourceFile: gunicorn.workers.gasgi
    functionUses: 2
    functionsReached:
    - asyncio.sleep
    - server.wait_closed
    - server.close
    - asyncio.wait_for
    - gunicorn.asgi.lifespan.LifespanManager.shutdown
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: server.close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: server.wait_closed
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 90
    functionName: gunicorn.asgi.lifespan.LifespanManager.shutdown
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 3
    functionsReached:
    - asyncio.wait_for
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.all_tasks
    functionSourceFile: asyncio
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.gather
    functionSourceFile: asyncio
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi.protocol
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - sockaddr
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 23
    functionName: gunicorn.asgi.protocol._normalize_sockaddr
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 9
    functionsReached:
    - <builtin>.tuple
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - sent
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 36
    functionName: gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 5
    functionsReached:
    - value.decode
    - <builtin>.isinstance
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - transport
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 71
    functionName: gunicorn.asgi.protocol.ASGIProtocol.connection_made
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - lname.startswith
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    - asyncio.create_task
    - gunicorn.asgi.message.AsyncRequest.__init__
    - asyncio.Queue
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - read_task.cancel
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended
    - frame.append
    - <builtin>.getattr
    - gunicorn.asgi.websocket.WebSocketProtocol.run
    - gunicorn.http2.request.HTTP2Request.__init__
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frames
    - frame.extend
    - queue.put
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received
    - s.strip
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated
    - req._check_allowed_ip
    - completed_requests.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.close
    - datetime.datetime.now
    - <builtin>.range
    - <builtin>.bytes
    - stream.get_regular_headers
    - name.replace
    - req._async_parse
    - pseudo.get
    - req._parse
    - name.lower
    - asyncio.StreamWriter
    - gunicorn.asgi.protocol.ASGIProtocol._build_websocket_scope
    - stream.receive_data
    - gunicorn.asgi.protocol.ASGIProtocol._close_transport
    - stream.reset
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - gunicorn.asgi.unreader.AsyncUnreader.__init__
    - response_headers.append
    - gunicorn.asgi.protocol.ASGIProtocol._handle_http2_connection
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - asyncio.wait_for
    - name.upper
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.__init__
    - headers.append
    - name.decode
    - stream.update_priority
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - h2_conn.h2_conn.send_data
    - value.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_trailers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.receive_data
    - struct.unpack
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - gunicorn.asgi.protocol.ASGIProtocol._is_websocket_upgrade
    - <builtin>.isinstance
    - request.drain_body
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    - receive_queue.put
    - gunicorn.asgi.protocol.ASGIProtocol._handle_http_request
    - io.BytesIO
    - stream.get_pseudo_headers
    - struct.pack
    - value.split
    - value.decode
    - <builtin>.max
    - stream.send_trailers
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    - h2_conn.h2_conn.send_headers
    - value.lower
    - asyncio.StreamReader
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_environ
    - gunicorn.http2.async_connection._import_h2
    - <builtin>.tuple
    - gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request
    - response.encode
    - request.path.encode
    - asyncio.StreamReaderProtocol
    - <builtin>.enumerate
    - message.encode
    - gunicorn.asgi.message.AsyncRequest.parse
    - gunicorn.asgi.protocol.ASGIProtocol._handle_websocket
    - gunicorn.asgi.protocol.ASGIProtocol._build_http_scope
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - ssl_object.selected_alpn_protocol
    - gunicorn.asgi.protocol.ASGIProtocol._send_error_response
    - request.read_body
    - stream.get_request_body
    - <builtin>.min
    - gunicorn.http2.request.HTTP2Body.__init__
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_scope
    - gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    - stream.send_data
    - urllib.parse.urlsplit
    - reason.encode
    - gunicorn.asgi.protocol.ASGIProtocol._build_environ
    - gunicorn.util.split_request_uri
    - request.query.encode
    - trailer_headers.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - <builtin>.bytearray
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    - <builtin>.len
    - payload.encode
    - transport.get_extra_info
    - response_hdrs.append
    - uri.startswith
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.initiate_connection
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - stream.send_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_error
    - gunicorn.asgi.protocol.ASGIProtocol._handle_connection
    - stream.receive_trailers
    - gunicorn.asgi.protocol._normalize_sockaddr
    - request.should_close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset
    - gunicorn.asgi.websocket.WebSocketProtocol.__init__
    - _h2.H2Connection
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    - <builtin>.str
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse
    - gunicorn.asgi.protocol.ASGIProtocol._read_body_to_queue
    - parts._replace
    - stream.close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_event
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: transport.get_extra_info
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: ssl_object.selected_alpn_protocol
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.StreamReader
    functionSourceFile: asyncio
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - transport
    - ssl_object
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 665
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http2_connection
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 1
    functionsReached:
    - lname.startswith
    - asyncio.Queue
    - _h2_config.H2Configuration
    - <builtin>.hasattr
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended
    - <builtin>.getattr
    - gunicorn.http2.request.HTTP2Request.__init__
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated
    - gunicorn.http2.stream.HTTP2Stream.__init__
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated
    - completed_requests.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.close
    - datetime.datetime.now
    - <builtin>.range
    - stream.get_regular_headers
    - name.replace
    - pseudo.get
    - name.lower
    - asyncio.StreamWriter
    - stream.receive_data
    - gunicorn.asgi.protocol.ASGIProtocol._close_transport
    - stream.reset
    - gunicorn.http2.stream.HTTP2Stream.receive_headers
    - response_headers.append
    - asyncio.wait_for
    - name.upper
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.__init__
    - headers.append
    - name.decode
    - stream.update_priority
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - h2_conn.h2_conn.send_data
    - value.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_trailers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.receive_data
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received
    - gunicorn.http2.stream.HTTP2Stream._half_close_remote
    - <builtin>.isinstance
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    - io.BytesIO
    - stream.get_pseudo_headers
    - value.decode
    - <builtin>.max
    - stream.send_trailers
    - h2_conn.h2_conn.send_headers
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_environ
    - gunicorn.http2.async_connection._import_h2
    - <builtin>.tuple
    - gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request
    - request.path.encode
    - asyncio.StreamReaderProtocol
    - message.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - stream.get_request_body
    - <builtin>.min
    - gunicorn.http2.request.HTTP2Body.__init__
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_scope
    - gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    - stream.send_data
    - urllib.parse.urlsplit
    - gunicorn.util.split_request_uri
    - request.query.encode
    - trailer_headers.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response
    - <builtin>.len
    - transport.get_extra_info
    - response_hdrs.append
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.initiate_connection
    - uri.startswith
    - stream.send_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_error
    - stream.receive_trailers
    - gunicorn.asgi.protocol._normalize_sockaddr
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset
    - _h2.H2Connection
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.str
    - parts._replace
    - stream.close
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_event
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 7
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 161
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_connection
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 1
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIProtocol._build_websocket_scope
    - gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    - asyncio.create_task
    - reason.encode
    - gunicorn.asgi.message.AsyncRequest.__init__
    - asyncio.Queue
    - gunicorn.asgi.protocol.ASGIProtocol._build_environ
    - value.lower
    - gunicorn.asgi.protocol.ASGIProtocol._close_transport
    - request.query.encode
    - <builtin>.hasattr
    - frame.append
    - read_task.cancel
    - value.split
    - <builtin>.getattr
    - <builtin>.tuple
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - gunicorn.asgi.websocket.WebSocketProtocol.run
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    - <builtin>.bytearray
    - gunicorn.asgi.unreader.AsyncUnreader.__init__
    - <builtin>.len
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frames
    - frame.extend
    - payload.encode
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - queue.put
    - response.encode
    - headers.append
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - name.decode
    - request.path.encode
    - s.strip
    - value.encode
    - <builtin>.enumerate
    - gunicorn.asgi.protocol._normalize_sockaddr
    - message.encode
    - request.should_close
    - gunicorn.asgi.message.AsyncRequest.parse
    - struct.unpack
    - req._check_allowed_ip
    - gunicorn.asgi.websocket.WebSocketProtocol.__init__
    - datetime.datetime.now
    - gunicorn.asgi.protocol.ASGIProtocol._is_websocket_upgrade
    - <builtin>.isinstance
    - receive_queue.put
    - request.drain_body
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse
    - gunicorn.asgi.protocol.ASGIProtocol._handle_websocket
    - <builtin>.bytes
    - gunicorn.asgi.protocol.ASGIProtocol._build_http_scope
    - gunicorn.asgi.protocol.ASGIProtocol._read_body_to_queue
    - name.replace
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - gunicorn.asgi.protocol.ASGIProtocol._handle_http_request
    - req._async_parse
    - gunicorn.asgi.protocol.ASGIProtocol._send_error_response
    - io.BytesIO
    - req._parse
    - struct.pack
    - request.read_body
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 97
    functionName: gunicorn.asgi.protocol.ASGIProtocol.data_received
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - exc
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 102
    functionName: gunicorn.asgi.protocol.ASGIProtocol.connection_lost
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 137
    functionName: gunicorn.asgi.protocol.ASGIProtocol._cancel_task_if_pending
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 142
    functionName: gunicorn.asgi.protocol.ASGIProtocol._safe_write
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a20da2b0>
    argNames:
    - self
    - reader
    - max_chunk
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 21
    functionName: gunicorn.asgi.unreader.AsyncUnreader.__init__
    functionSourceFile: gunicorn.asgi.unreader
    functionUses: 2
    functionsReached:
    - io.BytesIO
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a21f01c0>
    argNames:
    - cls
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: gunicorn.asgi.message.AsyncRequest.parse
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - gunicorn.asgi.message.AsyncRequest.__init__
    - req._parse
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - request
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 232
    functionName: gunicorn.asgi.protocol.ASGIProtocol._is_websocket_upgrade
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 2
    functionsReached:
    - value.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 253
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_websocket
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 2
    functionsReached:
    - gunicorn.asgi.protocol.ASGIProtocol._build_websocket_scope
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    - asyncio.create_task
    - reason.encode
    - asyncio.Queue
    - request.query.encode
    - frame.append
    - <builtin>.hasattr
    - read_task.cancel
    - gunicorn.asgi.websocket.WebSocketProtocol.run
    - <builtin>.tuple
    - <builtin>.bytearray
    - <builtin>.len
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frames
    - frame.extend
    - payload.encode
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - headers.append
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - request.path.encode
    - s.strip
    - value.encode
    - <builtin>.enumerate
    - gunicorn.asgi.protocol._normalize_sockaddr
    - struct.unpack
    - gunicorn.asgi.websocket.WebSocketProtocol.__init__
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - <builtin>.isinstance
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    - <builtin>.bytes
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - struct.pack
    - value.split
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 12
    IfCount: 5
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 263
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http_request
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 2
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    - asyncio.create_task
    - asyncio.Queue
    - gunicorn.asgi.protocol.ASGIProtocol._build_environ
    - request.query.encode
    - <builtin>.hasattr
    - <builtin>.tuple
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - <builtin>.len
    - queue.put
    - response.encode
    - headers.append
    - name.decode
    - request.path.encode
    - value.encode
    - gunicorn.asgi.protocol._normalize_sockaddr
    - message.encode
    - request.should_close
    - datetime.datetime.now
    - <builtin>.isinstance
    - receive_queue.put
    - gunicorn.asgi.protocol.ASGIProtocol._build_http_scope
    - gunicorn.asgi.protocol.ASGIProtocol._read_body_to_queue
    - name.replace
    - gunicorn.asgi.protocol.ASGIProtocol._send_error_response
    - request.read_body
    - name.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.drain_body
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 649
    functionName: gunicorn.asgi.protocol.ASGIProtocol._close_transport
    functionSourceFile: ''
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 499
    functionName: gunicorn.asgi.protocol.ASGIProtocol._build_websocket_scope
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - value.encode
    - gunicorn.asgi.protocol._normalize_sockaddr
    - request.query.encode
    - headers.append
    - value.split
    - <builtin>.hasattr
    - name.lower
    - request.path.encode
    - s.strip
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues: []
    argNames:
    - self
    - transport
    - reader
    - scope
    - app
    - log
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: gunicorn.asgi.websocket.WebSocketProtocol.__init__
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 3
    functionsReached:
    - asyncio.Queue
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 7
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 73
    functionName: gunicorn.asgi.websocket.WebSocketProtocol.run
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 3
    functionsReached:
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    - asyncio.create_task
    - reason.encode
    - frame.append
    - read_task.cancel
    - <builtin>.bytearray
    - <builtin>.len
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frames
    - frame.extend
    - payload.encode
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - <builtin>.enumerate
    - struct.unpack
    - <builtin>.isinstance
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    - <builtin>.bytes
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - struct.pack
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 441
    functionName: gunicorn.asgi.protocol.ASGIProtocol._build_http_scope
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - value.encode
    - gunicorn.asgi.protocol._normalize_sockaddr
    - request.query.encode
    - headers.append
    - <builtin>.hasattr
    - name.lower
    - request.path.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: receive_queue.put
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - request
    - queue
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 415
    functionName: gunicorn.asgi.protocol.ASGIProtocol._read_body_to_queue
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - request.read_body
    - queue.put
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 293
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http_request.receive
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - msg.get
    - receive_queue.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: receive_queue.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.get
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 16
    ICount: 4
    IfCount: 11
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 307
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http_request.send
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIProtocol._send_response_start
    - gunicorn.asgi.protocol.ASGIProtocol._get_reason_phrase
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - header_lines.append
    - <builtin>.RuntimeError
    - <builtin>.any
    - <builtin>.list
    - <builtin>.len
    - message.get
    - gunicorn.asgi.protocol.ASGIProtocol._send_body
    - reasons.get
    - response.encode
    - gunicorn.asgi.protocol.ASGIProtocol._send_informational
    - <builtin>.isinstance
    - name.lower
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - request
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 537
    functionName: gunicorn.asgi.protocol.ASGIProtocol._send_informational
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 1
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIProtocol._get_reason_phrase
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - reasons.get
    - response.encode
    - <builtin>.isinstance
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.RuntimeError
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - request
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 565
    functionName: gunicorn.asgi.protocol.ASGIProtocol._send_response_start
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 1
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIProtocol._get_reason_phrase
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    - header_lines.append
    - reasons.get
    - response.encode
    - <builtin>.isinstance
    - name.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2233160>
    argNames:
    - self
    - body
    - chunked
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 587
    functionName: gunicorn.asgi.protocol.ASGIProtocol._send_body
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 481
    functionName: gunicorn.asgi.protocol.ASGIProtocol._build_environ
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - name.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - status
    - message
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 597
    functionName: gunicorn.asgi.protocol.ASGIProtocol._send_error_response
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.len
    - message.encode
    - response.encode
    - gunicorn.asgi.protocol.ASGIProtocol._safe_write
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.should_close
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.read_body
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.path.encode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.query.encode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: name.replace
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: s.strip
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - status
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 610
    functionName: gunicorn.asgi.protocol.ASGIProtocol._get_reason_phrase
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - reasons.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response.encode
    functionSourceFile: <builtin>
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: header_lines.append
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reasons.get
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.StreamReaderProtocol
    functionSourceFile: asyncio
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.StreamWriter
    functionSourceFile: asyncio
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 19
    IfCount: 7
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - request
    - h2_conn
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 736
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 2
    functionsReached:
    - value.decode
    - gunicorn.asgi.protocol.ASGIResponseInfo.__init__
    - stream.send_trailers
    - stream.send_data
    - lname.startswith
    - h2_conn.h2_conn.send_headers
    - request.query.encode
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_environ
    - trailer_headers.append
    - <builtin>.hasattr
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response
    - <builtin>.tuple
    - response_headers.append
    - <builtin>.len
    - asyncio.wait_for
    - response_hdrs.append
    - headers.append
    - name.decode
    - stream.send_headers
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_error
    - request.path.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream
    - h2_conn.h2_conn.send_data
    - value.encode
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_trailers
    - gunicorn.asgi.protocol._normalize_sockaddr
    - message.encode
    - datetime.datetime.now
    - <builtin>.isinstance
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - <builtin>.range
    - <builtin>.str
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data
    - name.replace
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window
    - stream.close
    - name.lower
    - <builtin>.min
    - gunicorn.asgi.protocol.ASGIProtocol._build_http2_scope
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 886
    functionName: gunicorn.asgi.protocol.ASGIProtocol._build_http2_scope
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - <builtin>.tuple
    - value.encode
    - gunicorn.asgi.protocol._normalize_sockaddr
    - request.query.encode
    - headers.append
    - <builtin>.hasattr
    - name.lower
    - request.path.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 750
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request.receive
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - request.body.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: request.body.read
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 4
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - message
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 759
    functionName: gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request.send
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 0
    functionsReached:
    - value.decode
    - <builtin>.RuntimeError
    - response_headers.append
    - message.get
    - trailers.append
    - response_trailers.extend
    - gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data
    - gunicorn.http2.async_connection.AsyncHTTP2Connection.send_informational
    - headers.append
    - <builtin>.isinstance
    - name.lower
    - name.decode
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: trailers.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response_trailers.extend
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - request
    - sockname
    - peername
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 929
    functionName: gunicorn.asgi.protocol.ASGIProtocol._build_http2_environ
    functionSourceFile: gunicorn.asgi.protocol
    functionUses: 3
    functionsReached:
    - name.replace
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: response_hdrs.append
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: gunicorn.asgi.message
    functionSourceFile: gunicorn.asgi.message
    functionUses: 0
    functionsReached:
    - re.escape
    - re.compile
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - ip_str
    - allow_list
    - networks
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 43
    functionName: gunicorn.asgi.message._ip_in_allow_list
    functionSourceFile: gunicorn.asgi.message
    functionUses: 4
    functionsReached:
    - ipaddress.ip_address
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22a22b0>
    argNames:
    - self
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 70
    functionName: gunicorn.asgi.message.AsyncRequest.__init__
    functionSourceFile: gunicorn.asgi.message
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req._parse
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 139
    functionName: gunicorn.asgi.message.AsyncRequest._parse
    functionSourceFile: gunicorn.asgi.message
    functionUses: 0
    functionsReached:
    - gunicorn.asgi.message.AsyncRequest._handle_proxy_protocol
    - curr.find
    - urllib.parse.urlsplit
    - gunicorn.asgi.message.AsyncRequest.force_close
    - gunicorn.asgi.message._ip_in_allow_list
    - gunicorn.util.split_request_uri
    - value.lower
    - gunicorn.asgi.message.AsyncRequest._parse_request_line
    - gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v2
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.util.bytes_to_str
    - match.group
    - name.rstrip
    - <builtin>.bytearray
    - curr.split
    - value.append
    - <builtin>.len
    - TOKEN_RE.fullmatch
    - name.upper
    - headers.append
    - uri.startswith
    - gunicorn.asgi.message.AsyncRequest._read_line
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - socket.inet_ntop
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - METHOD_BADCHAR_RE.search
    - gunicorn.asgi.unreader.AsyncUnreader.unread
    - VERSION_RE.fullmatch
    - line_bytes.split
    - line.split
    - struct.unpack
    - val.lower
    - gunicorn.asgi.message.AsyncRequest._read_into
    - <builtin>.int
    - curr.strip
    - gunicorn.asgi.message.AsyncRequest._proxy_protocol_access_check
    - <builtin>.isinstance
    - value.strip
    - buf.extend
    - <builtin>.str
    - <builtin>.bytes
    - v.strip
    - data.split
    - parts._replace
    - ipaddress.ip_address
    - gunicorn.asgi.message.AsyncRequest._parse_headers
    - cfg.forwarded_allow_networks
    - gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v1
    - io.BytesIO
    - data.find
    - gunicorn.asgi.message.AsyncRequest._set_body_reader
    - lines.pop
    - value.split
    - socket.inet_pton
    linkageType: pythonLinkage
    raised:
    - LimitRequestHeaders
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 177
    functionName: gunicorn.asgi.message.AsyncRequest._read_into
    functionSourceFile: gunicorn.asgi.message
    functionUses: 5
    functionsReached:
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - buf.extend
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - buf
    - mode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 201
    functionName: gunicorn.asgi.message.AsyncRequest._handle_proxy_protocol
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - gunicorn.asgi.message._ip_in_allow_list
    - gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v2
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.util.bytes_to_str
    - <builtin>.bytearray
    - <builtin>.len
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - socket.inet_ntop
    - line.split
    - struct.unpack
    - gunicorn.asgi.message.AsyncRequest._read_into
    - <builtin>.int
    - gunicorn.asgi.message.AsyncRequest._proxy_protocol_access_check
    - <builtin>.isinstance
    - buf.extend
    - <builtin>.str
    - <builtin>.bytes
    - ipaddress.ip_address
    - gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v1
    - io.BytesIO
    - data.find
    - socket.inet_pton
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a21e0a30>
    argNames:
    - self
    - buf
    - limit
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 184
    functionName: gunicorn.asgi.message.AsyncRequest._read_line
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - gunicorn.asgi.message.AsyncRequest._read_into
    - io.BytesIO
    - data.find
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - buf.extend
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - LimitRequestLine
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 1
    IfCount: 10
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - line_bytes
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 382
    functionName: gunicorn.asgi.message.AsyncRequest._parse_request_line
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - match.group
    - VERSION_RE.fullmatch
    - urllib.parse.urlsplit
    - METHOD_BADCHAR_RE.search
    - line_bytes.split
    - <builtin>.len
    - parts._replace
    - <builtin>.int
    - gunicorn.util.split_request_uri
    - TOKEN_RE.fullmatch
    - uri.startswith
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.util.bytes_to_str
    linkageType: pythonLinkage
    raised:
    - InvalidRequestMethod
    - InvalidRequestLine
    - InvalidHTTPVersion
    returnType: N/A
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 29
    ICount: 3
    IfCount: 20
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a242b970>
    argNames:
    - self
    - data
    - from_trailer
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 424
    functionName: gunicorn.asgi.message.AsyncRequest._parse_headers
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - curr.find
    - gunicorn.asgi.message._ip_in_allow_list
    - value.lower
    - gunicorn.util.bytes_to_str
    - name.rstrip
    - curr.split
    - value.append
    - <builtin>.len
    - TOKEN_RE.fullmatch
    - name.upper
    - headers.append
    - RFC9110_5_5_INVALID_AND_DANGEROUS.search
    - curr.strip
    - <builtin>.isinstance
    - value.strip
    - <builtin>.str
    - data.split
    - ipaddress.ip_address
    - cfg.forwarded_allow_networks
    - lines.pop
    linkageType: pythonLinkage
    raised:
    - LimitRequestHeaders
    - InvalidSchemeHeaders
    - ObsoleteFolding
    - InvalidHeader
    - InvalidHeaderName
    - ExpectationFailed
    returnType: N/A
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 22
    ICount: 2
    IfCount: 15
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 516
    functionName: gunicorn.asgi.message.AsyncRequest._set_body_reader
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - v.strip
    - gunicorn.asgi.message.AsyncRequest.force_close
    - val.lower
    - <builtin>.int
    - value.split
    - <builtin>.str
    linkageType: pythonLinkage
    raised:
    - UnsupportedTransferCoding
    - InvalidHeader
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 223
    functionName: gunicorn.asgi.message.AsyncRequest._proxy_protocol_access_check
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.isinstance
    - ipaddress.ip_address
    - gunicorn.asgi.message._ip_in_allow_list
    linkageType: pythonLinkage
    raised:
    - ForbiddenProxyRequest
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 3
    IfCount: 9
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 289
    functionName: gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v2
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - struct.unpack
    - gunicorn.asgi.message.AsyncRequest._read_into
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - socket.inet_ntop
    - <builtin>.isinstance
    - buf.extend
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - InvalidProxyHeader
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 6
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - buf
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 230
    functionName: gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v1
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - line.split
    - gunicorn.asgi.message.AsyncRequest._read_into
    - socket.inet_pton
    - io.BytesIO
    - data.find
    - <builtin>.int
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.util.bytes_to_str
    - <builtin>.isinstance
    - buf.extend
    - <builtin>.str
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - InvalidProxyLine
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 570
    functionName: gunicorn.asgi.message.AsyncRequest.force_close
    functionSourceFile: ''
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 1
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 574
    functionName: gunicorn.asgi.message.AsyncRequest.should_close
    functionSourceFile: gunicorn.asgi.message
    functionUses: 0
    functionsReached:
    - v.lower
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 588
    functionName: gunicorn.asgi.message.AsyncRequest.get_header
    functionSourceFile: gunicorn.asgi.message
    functionUses: 0
    functionsReached:
    - name.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2b23e20>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 596
    functionName: gunicorn.asgi.message.AsyncRequest.read_body
    functionSourceFile: gunicorn.asgi.message
    functionUses: 1
    functionsReached:
    - gunicorn.asgi.message.AsyncRequest._read_length_body
    - gunicorn.asgi.message.AsyncRequest._skip_trailers
    - <builtin>.len
    - <builtin>.any
    - buf.getvalue
    - chunk_size.rstrip
    - gunicorn.asgi.message.AsyncRequest._read_chunked_body
    - <builtin>.int
    - io.BytesIO
    - content.endswith
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.min
    - <builtin>.isinstance
    - size_line.split
    - gunicorn.asgi.message.AsyncRequest._chunked_body_reader
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.asgi.message.AsyncRequest._read_chunk_size_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 624
    functionName: gunicorn.asgi.message.AsyncRequest._read_chunked_body
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - gunicorn.asgi.message.AsyncRequest._skip_trailers
    - <builtin>.any
    - buf.getvalue
    - <builtin>.len
    - chunk_size.rstrip
    - <builtin>.int
    - io.BytesIO
    - content.endswith
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.min
    - <builtin>.isinstance
    - size_line.split
    - gunicorn.asgi.message.AsyncRequest._chunked_body_reader
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.asgi.message.AsyncRequest._read_chunk_size_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 613
    functionName: gunicorn.asgi.message.AsyncRequest._read_length_body
    functionSourceFile: gunicorn.asgi.message
    functionUses: 2
    functionsReached:
    - <builtin>.len
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 3
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 635
    functionName: gunicorn.asgi.message.AsyncRequest._chunked_body_reader
    functionSourceFile: gunicorn.asgi.message
    functionUses: 3
    functionsReached:
    - gunicorn.asgi.message.AsyncRequest._skip_trailers
    - <builtin>.any
    - buf.getvalue
    - <builtin>.len
    - chunk_size.rstrip
    - <builtin>.int
    - io.BytesIO
    - content.endswith
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - size_line.split
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - gunicorn.asgi.message.AsyncRequest._read_chunk_size_line
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    - InvalidHeader
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 678
    functionName: gunicorn.asgi.message.AsyncRequest._read_chunk_size_line
    functionSourceFile: gunicorn.asgi.message
    functionUses: 4
    functionsReached:
    - buf.getvalue
    - io.BytesIO
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised:
    - NoMoreData
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: size_line.split
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 689
    functionName: gunicorn.asgi.message.AsyncRequest._skip_trailers
    functionSourceFile: gunicorn.asgi.message
    functionUses: 4
    functionsReached:
    - buf.getvalue
    - io.BytesIO
    - content.endswith
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: content.endswith
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 704
    functionName: gunicorn.asgi.message.AsyncRequest.drain_body
    functionSourceFile: gunicorn.asgi.message
    functionUses: 0
    functionsReached:
    - buf.getvalue
    - chunk_size.rstrip
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - <builtin>.len
    - content.endswith
    - buf.write
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - size_line.split
    - gunicorn.asgi.message.AsyncRequest._skip_trailers
    - gunicorn.asgi.message.AsyncRequest.read_body
    - <builtin>.int
    - <builtin>.isinstance
    - gunicorn.asgi.message.AsyncRequest._read_chunked_body
    - gunicorn.asgi.message.AsyncRequest._read_length_body
    - <builtin>.any
    - io.BytesIO
    - gunicorn.asgi.message.AsyncRequest._chunked_body_reader
    - gunicorn.asgi.message.AsyncRequest._read_chunk_size_line
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi.unreader
    functionSourceFile: gunicorn.asgi.unreader
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 77
    functionName: gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    functionSourceFile: ''
    functionUses: 28
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 94
    functionName: gunicorn.asgi.unreader.AsyncUnreader.has_buffered_data
    functionSourceFile: gunicorn.asgi.unreader
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi.uwsgi
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 5
    argDefaultValues:
    - <ast.Constant object at 0x7f99a22a5fd0>
    argNames:
    - self
    - cfg
    - unreader
    - peer_addr
    - req_number
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest.__init__
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req._check_allowed_ip
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: req._async_parse
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 4
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 87
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest._async_parse
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - gunicorn.uwsgi.message.UWSGIRequest._extract_request_info
    - <builtin>.bytearray
    - <builtin>.isinstance
    - <builtin>.len
    - <builtin>.int
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest._set_body_reader
    - int.from_bytes
    - io.BytesIO
    - <builtin>.bytes
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - gunicorn.uwsgi.message.UWSGIRequest._parse_vars
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest._async_read_exact
    - buf.extend
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - key.startswith
    linkageType: pythonLinkage
    raised:
    - InvalidUWSGIHeader
    - UnsupportedModifier
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 111
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest._async_read_exact
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 1
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - buf.extend
    - gunicorn.asgi.unreader.AsyncUnreader.read
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 121
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest._set_body_reader
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 1
    functionsReached:
    - <builtin>.max
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a28a5130>
    argNames:
    - self
    - size
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 132
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest.read_body
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 1
    functionsReached:
    - <builtin>.len
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 149
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest.drain_body
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 0
    functionsReached:
    - <builtin>.len
    - gunicorn.asgi.uwsgi.AsyncUWSGIRequest.read_body
    - io.BytesIO
    - gunicorn.asgi.unreader.AsyncUnreader._read_chunk
    - <builtin>.isinstance
    - <builtin>.min
    - gunicorn.asgi.unreader.AsyncUnreader.read
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - name
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 159
    functionName: gunicorn.asgi.uwsgi.AsyncUWSGIRequest.get_header
    functionSourceFile: gunicorn.asgi.uwsgi
    functionUses: 0
    functionsReached:
    - name.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi.websocket
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 8
    IfCount: 8
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 169
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._read_frames
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 4
    functionsReached:
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - <builtin>.enumerate
    - gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    - <builtin>.bytearray
    - <builtin>.len
    - reason.encode
    - struct.unpack
    - frame.extend
    - payload.encode
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - frame.append
    - struct.pack
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - <builtin>.isinstance
    - gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: read_task.cancel
    functionSourceFile: <builtin>
    functionUses: 4
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a21f0070>
    argNames:
    - self
    - code
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 362
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._send_close
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 8
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytearray
    - <builtin>.len
    - reason.encode
    - frame.extend
    - payload.encode
    - struct.pack
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - frame.append
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 96
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._receive
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 5
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 100
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._send
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 0
    functionsReached:
    - value.decode
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - gunicorn.asgi.websocket.WebSocketProtocol._send_accept
    - <builtin>.bytearray
    - hashlib.sha1
    - <builtin>.len
    - reason.encode
    - message.get
    - frame.extend
    - payload.encode
    - frame.append
    - base64.b64encode
    - headers.append
    - struct.pack
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - <builtin>.isinstance
    - name.decode
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 5
    IfCount: 5
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 127
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._send_accept
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 1
    functionsReached:
    - value.decode
    - hashlib.sha1
    - message.get
    - base64.b64encode
    - headers.append
    - <builtin>.isinstance
    - name.decode
    linkageType: pythonLinkage
    raised:
    - RuntimeError
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 9
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - opcode
    - payload
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 333
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 9
    functionsReached:
    - <builtin>.bytearray
    - <builtin>.len
    - frame.extend
    - payload.encode
    - struct.pack
    - frame.append
    - <builtin>.isinstance
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: hashlib.sha1
    functionSourceFile: hashlib
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: base64.b64encode
    functionSourceFile: base64
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 21
    ICount: 5
    IfCount: 14
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 215
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._read_frame
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - gunicorn.asgi.websocket.WebSocketProtocol._unmask
    - <builtin>.enumerate
    - <builtin>.bytearray
    - <builtin>.len
    - reason.encode
    - struct.unpack
    - frame.extend
    - payload.encode
    - gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    - frame.append
    - struct.pack
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 314
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._handle_close
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 5
    functionsReached:
    - <builtin>.isinstance
    - <builtin>.bytearray
    - <builtin>.len
    - reason.encode
    - struct.unpack
    - frame.extend
    - payload.encode
    - frame.append
    - struct.pack
    - gunicorn.asgi.websocket.WebSocketProtocol._send_frame
    - gunicorn.asgi.websocket.WebSocketProtocol._send_close
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 329
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation
    functionSourceFile: ''
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - n
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 297
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._read_exact
    functionSourceFile: ''
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - payload
    - masking_key
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 307
    functionName: gunicorn.asgi.websocket.WebSocketProtocol._unmask
    functionSourceFile: gunicorn.asgi.websocket
    functionUses: 6
    functionsReached:
    - <builtin>.enumerate
    - <builtin>.bytes
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: payload.encode
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: frame.append
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: frame.extend
    functionSourceFile: <builtin>
    functionUses: 10
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: reason.encode
    functionSourceFile: <builtin>
    functionUses: 9
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi.lifespan
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: asyncio.Event
    functionSourceFile: asyncio
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 7
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - scope
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 124
    functionName: gunicorn.asgi.lifespan.LifespanManager._run_lifespan
    functionSourceFile: gunicorn.asgi.lifespan
    functionUses: 3
    functionsReached:
    - gunicorn.asgi.lifespan.LifespanManager._send
    - message.get
    - gunicorn.asgi.lifespan.LifespanManager._receive
    - gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.asgi
    functionSourceFile: gunicorn.asgi
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.workers.gtornado
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - cls
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 24
    functionName: gunicorn.workers.gtornado.TornadoWorker.setup
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - sys.modules.pop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sys.modules.pop
    functionSourceFile: sys
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 28
    functionName: gunicorn.workers.gtornado.TornadoWorker.setup.clear
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sig
    - frame
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 35
    functionName: gunicorn.workers.gtornado.TornadoWorker.handle_exit
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 39
    functionName: gunicorn.workers.gtornado.TornadoWorker.handle_request
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 45
    functionName: gunicorn.workers.gtornado.TornadoWorker.watchdog
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - gunicorn.workers.base.Worker.notify
    - gunicorn.workers.workertmp.WorkerTmp.notify
    - os.utime
    - time.monotonic
    - os.getppid
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: gunicorn.workers.gtornado.TornadoWorker.heartbeat
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - callback.stop
    - tornado.httpserver.HTTPServer.stop
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.httpserver.HTTPServer.stop
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: callback.stop
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: gunicorn.workers.gtornado.TornadoWorker.init_process
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - tornado.ioloop.IOLoop.clear_current
    - <builtin>.super
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.ioloop.IOLoop.clear_current
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 8
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: gunicorn.workers.gtornado.TornadoWorker.run
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - tornado.httpserver.HTTPServer.__init__
    - conf.ssl_context
    - s.setblocking
    - gunicorn.sock.ssl_context
    - tornado.httpserver.HTTPServer.add_socket
    - callback.start
    - tornado.ioloop.PeriodicCallback
    - tornado.httpserver.HTTPServer.start
    - tornado.ioloop.IOLoop.instance
    - tornado.wsgi.WSGIContainer
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.ioloop.IOLoop.instance
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.ioloop.PeriodicCallback
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: callback.start
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.wsgi.WSGIContainer
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - instance
    - server_conn
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 103
    functionName: gunicorn.workers.gtornado.TornadoWorker.run._HTTPServer.on_close
    functionSourceFile: gunicorn.workers.gtornado
    functionUses: 0
    functionsReached:
    - <builtin>.super
    - gunicorn.workers.gtornado.TornadoWorker.handle_request
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.httpserver.HTTPServer.__init__
    functionSourceFile: ''
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.httpserver.HTTPServer.add_socket
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: tornado.httpserver.HTTPServer.start
    functionSourceFile: tornado
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.instrument.statsd
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - cfg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 26
    functionName: gunicorn.instrument.statsd.Statsd.__init__
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - log.addHandler
    - sys.stdout.fileno
    - threading.Lock
    - gunicorn.glogging.Logger.setup
    - logging.config.fileConfig
    - logging.FileHandler
    - os.path.dirname
    - f.close
    - socket.socket
    - gunicorn.util.check_is_writable
    - gunicorn.glogging.Logger._get_gunicorn_handler
    - config.update
    - os.dup2
    - logging.config.dictConfig
    - cfg.syslog_facility.lower
    - <builtin>.getattr
    - gunicorn.glogging.Logger._set_syslog_handler
    - logging.Formatter
    - h.setFormatter
    - <builtin>.len
    - addr.split
    - <builtin>.open
    - gunicorn.glogging.Logger._set_handler
    - port.isdigit
    - sys.stderr.fileno
    - addr.lower
    - gunicorn.glogging.Logger.__init__
    - json.load
    - os.path.exists
    - logging.StreamHandler
    - logging.getLogger
    - <builtin>.int
    - re.sub
    - <builtin>.isinstance
    - os.chown
    - addr.startswith
    - log.handlers.remove
    - CONFIG_DEFAULTS.copy
    - logging.INFO.lower
    - cfg.proc_name.replace
    - stream.flush
    - gunicorn.glogging.parse_syslog_address
    - logging.handlers.SysLogHandler
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: re.sub
    functionSourceFile: re
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 44
    functionName: gunicorn.instrument.statsd.Statsd.critical
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - gunicorn.glogging.Logger.critical
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a242be80>
    argNames:
    - self
    - name
    - value
    - sampling_rate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 116
    functionName: gunicorn.instrument.statsd.Statsd.increment
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 8
    functionsReached:
    - msg.encode
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 48
    functionName: gunicorn.instrument.statsd.Statsd.error
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.glogging.Logger.error
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 52
    functionName: gunicorn.instrument.statsd.Statsd.warning
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 56
    functionName: gunicorn.instrument.statsd.Statsd.exception
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.glogging.Logger.exception
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 61
    functionName: gunicorn.instrument.statsd.Statsd.info
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - lvl.lower
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.instrument.statsd.Statsd.histogram
    - gunicorn.instrument.statsd.Statsd.gauge
    - gunicorn.instrument.statsd.Statsd.timer
    - gunicorn.instrument.statsd.Statsd.log
    - gunicorn.glogging.Logger.warning
    - kwargs.get
    - extra.get
    - gunicorn.glogging.Logger.log
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 7
    IfCount: 7
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - lvl
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 68
    functionName: gunicorn.instrument.statsd.Statsd.log
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 2
    functionsReached:
    - lvl.lower
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.instrument.statsd.Statsd.histogram
    - gunicorn.instrument.statsd.Statsd.gauge
    - gunicorn.instrument.statsd.Statsd.timer
    - gunicorn.glogging.Logger.warning
    - kwargs.get
    - extra.get
    - gunicorn.glogging.Logger.log
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - msg
    - args
    - kwargs
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 65
    functionName: gunicorn.instrument.statsd.Statsd.debug
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - lvl.lower
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.instrument.statsd.Statsd.increment
    - gunicorn.instrument.statsd.Statsd.histogram
    - gunicorn.instrument.statsd.Statsd.gauge
    - gunicorn.instrument.statsd.Statsd.timer
    - gunicorn.instrument.statsd.Statsd.log
    - gunicorn.glogging.Logger.warning
    - kwargs.get
    - extra.get
    - gunicorn.glogging.Logger.log
    - <builtin>.isinstance
    - msg.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: kwargs.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: extra.get
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 113
    functionName: gunicorn.instrument.statsd.Statsd.gauge
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 3
    functionsReached:
    - msg.encode
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 125
    functionName: gunicorn.instrument.statsd.Statsd.histogram
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 3
    functionsReached:
    - msg.encode
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - name
    - value
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 122
    functionName: gunicorn.instrument.statsd.Statsd.timer
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 4
    functionsReached:
    - msg.encode
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    IfCount: 2
    argCount: 5
    argDefaultValues: []
    argNames:
    - self
    - resp
    - req
    - environ
    - request_time
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 96
    functionName: gunicorn.instrument.statsd.Statsd.access
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - time.strftime
    - k.lower
    - gunicorn.instrument.statsd.Statsd.timer
    - <builtin>.hasattr
    - atoms.items
    - <builtin>.getattr
    - status.split
    - gunicorn.instrument.statsd.Statsd.increment
    - <builtin>.len
    - gunicorn.glogging.Logger.error
    - environ.items
    - gunicorn.glogging.Logger.access
    - msg.encode
    - value.replace
    - traceback.format_exc
    - gunicorn.glogging.Logger._get_user
    - http_auth.split
    - environ.get
    - atoms.update
    - <builtin>.int
    - gunicorn.glogging.Logger.warning
    - status.decode
    - gunicorn.glogging.Logger.atoms
    - base64.b64decode
    - <builtin>.isinstance
    - <builtin>.str
    - gunicorn.glogging.Logger.debug
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.now
    - http_auth.lower
    - gunicorn.glogging.SafeAtoms.__init__
    - os.getpid
    - auth.split
    - req_headers.items
    - resp_headers.items
    - <builtin>.float
    - dict.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.float
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: status.decode
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - msg
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 128
    functionName: gunicorn.instrument.statsd.Statsd._sock_send
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 13
    functionsReached:
    - msg.encode
    - <builtin>.isinstance
    - gunicorn.glogging.Logger.warning
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f99a242b910>
    argNames:
    - self
    - name
    - value
    - sampling_rate
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 119
    functionName: gunicorn.instrument.statsd.Statsd.decrement
    functionSourceFile: gunicorn.instrument.statsd
    functionUses: 0
    functionsReached:
    - msg.encode
    - gunicorn.instrument.statsd.Statsd._sock_send
    - gunicorn.glogging.Logger.warning
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: msg.encode
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gunicorn.instrument
    functionSourceFile: gunicorn.instrument
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: -1
    functionName: gunicorn.ctl.cli
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 0
    functionsReached:
    - <builtin>.max
    - readline.read_history_file
    - dirty_arbiter.get
    - gunicorn.ctl.cli.format_all
    - os.path.expanduser
    - gunicorn.ctl.client.ControlClient.send_command
    - gunicorn.ctl.protocol.ControlProtocol.write_message
    - payload_data.decode
    - command.lower
    - lnr.get
    - <builtin>.sorted
    - os.path.isabs
    - socket.socket
    - line.lower
    - gunicorn.ctl.protocol.ControlProtocol.read_message
    - part.isdigit
    - gunicorn.ctl.cli.format_help
    - gunicorn.ctl.cli.format_listeners
    - client.send_command
    - gunicorn.ctl.cli.format_workers
    - <builtin>.len
    - gunicorn.ctl.cli.format_config
    - commands.items
    - command_parts.append
    - gunicorn.ctl.client.ControlClient.__init__
    - gunicorn.ctl.cli.run_interactive
    - argparse.ArgumentParser
    - gunicorn.ctl.cli.format_response
    - gunicorn.ctl.cli.format_dirty
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - parser.add_argument
    - gunicorn.ctl.client.ControlClient.connect
    - parser.parse_args
    - gunicorn.ctl.client.parse_command
    - gunicorn.ctl.cli.main
    - sock.sendall
    - struct.unpack
    - os.path.join
    - shlex.split
    - <builtin>.int
    - gunicorn.ctl.cli.run_command
    - app.split
    - commands.keys
    - <builtin>.print
    - gunicorn.ctl.client.ControlClient.close
    - json.loads
    - response.get
    - <builtin>.str
    - <builtin>.isinstance
    - arbiter.get
    - lines.append
    - os.getcwd
    - gunicorn.ctl.protocol.make_request
    - data.get
    - app.get
    - sock.recv
    - json.dumps
    - args.append
    - readline.write_history_file
    - sys.exit
    - w.get
    - data.keys
    - part.startswith
    - <builtin>.input
    - gunicorn.ctl.cli.format_stats
    - struct.pack
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 19
    functionName: gunicorn.ctl.cli.format_workers
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - <builtin>.len
    - w.get
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: w.get
    functionSourceFile: <builtin>
    functionUses: 8
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 12
    IfCount: 3
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 44
    functionName: gunicorn.ctl.cli.format_dirty
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - app.get
    - w.get
    - <builtin>.str
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 9
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 86
    functionName: gunicorn.ctl.cli.format_stats
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - data.get
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 6
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 119
    functionName: gunicorn.ctl.cli.format_listeners
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - lnr.get
    - <builtin>.len
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: lnr.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 141
    functionName: gunicorn.ctl.cli.format_config
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - data.keys
    - <builtin>.sorted
    - <builtin>.isinstance
    - <builtin>.str
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: data.keys
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 155
    functionName: gunicorn.ctl.cli.format_help
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - <builtin>.max
    - <builtin>.len
    - commands.items
    - <builtin>.sorted
    - commands.keys
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commands.keys
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: commands.items
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 22
    IfCount: 4
    argCount: 1
    argDefaultValues: []
    argNames:
    - data
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 171
    functionName: gunicorn.ctl.cli.format_all
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 5
    functionsReached:
    - lines.append
    - dirty_arbiter.get
    - w.get
    - app.split
    - arbiter.get
    - data.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: arbiter.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dirty_arbiter.get
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: app.split
    functionSourceFile: <builtin>
    functionUses: 6
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues: []
    argNames:
    - command
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 233
    functionName: gunicorn.ctl.cli.format_response
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 4
    functionsReached:
    - <builtin>.max
    - dirty_arbiter.get
    - gunicorn.ctl.cli.format_all
    - command.lower
    - lnr.get
    - <builtin>.sorted
    - gunicorn.ctl.cli.format_help
    - gunicorn.ctl.cli.format_listeners
    - gunicorn.ctl.cli.format_workers
    - gunicorn.ctl.cli.format_config
    - <builtin>.len
    - commands.items
    - gunicorn.ctl.cli.format_dirty
    - <builtin>.int
    - app.split
    - commands.keys
    - <builtin>.isinstance
    - arbiter.get
    - <builtin>.str
    - data.get
    - lines.append
    - app.get
    - json.dumps
    - w.get
    - data.keys
    - gunicorn.ctl.cli.format_stats
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: command.lower
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 4
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Constant object at 0x7f99a1c33f70>
    argNames:
    - socket_path
    - command
    - json_output
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 268
    functionName: gunicorn.ctl.cli.run_command
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - dirty_arbiter.get
    - gunicorn.ctl.cli.format_all
    - command.lower
    - lnr.get
    - <builtin>.sorted
    - gunicorn.ctl.cli.format_help
    - part.isdigit
    - gunicorn.ctl.cli.format_listeners
    - client.send_command
    - gunicorn.ctl.cli.format_workers
    - gunicorn.ctl.cli.format_config
    - <builtin>.len
    - commands.items
    - command_parts.append
    - gunicorn.ctl.client.ControlClient.__init__
    - gunicorn.ctl.cli.format_response
    - gunicorn.ctl.cli.format_dirty
    - gunicorn.ctl.client.parse_command
    - shlex.split
    - <builtin>.int
    - app.split
    - commands.keys
    - <builtin>.print
    - <builtin>.isinstance
    - arbiter.get
    - <builtin>.str
    - data.get
    - lines.append
    - app.get
    - json.dumps
    - args.append
    - w.get
    - data.keys
    - gunicorn.ctl.cli.format_stats
    - part.startswith
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: client.send_command
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 18
    IfCount: 5
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f99a2105850>
    argNames:
    - socket_path
    - json_output
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 301
    functionName: gunicorn.ctl.cli.run_interactive
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 2
    functionsReached:
    - <builtin>.max
    - readline.read_history_file
    - dirty_arbiter.get
    - gunicorn.ctl.cli.format_all
    - os.path.expanduser
    - gunicorn.ctl.client.ControlClient.send_command
    - gunicorn.ctl.protocol.ControlProtocol.write_message
    - payload_data.decode
    - command.lower
    - lnr.get
    - <builtin>.sorted
    - socket.socket
    - line.lower
    - gunicorn.ctl.protocol.ControlProtocol.read_message
    - part.isdigit
    - gunicorn.ctl.cli.format_help
    - gunicorn.ctl.cli.format_listeners
    - gunicorn.ctl.cli.format_workers
    - <builtin>.len
    - gunicorn.ctl.cli.format_config
    - commands.items
    - command_parts.append
    - gunicorn.ctl.client.ControlClient.__init__
    - gunicorn.ctl.cli.format_response
    - gunicorn.ctl.cli.format_dirty
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - gunicorn.ctl.client.ControlClient.connect
    - gunicorn.ctl.client.parse_command
    - sock.sendall
    - struct.unpack
    - shlex.split
    - <builtin>.int
    - app.split
    - commands.keys
    - <builtin>.print
    - gunicorn.ctl.client.ControlClient.close
    - json.loads
    - <builtin>.str
    - <builtin>.isinstance
    - arbiter.get
    - response.get
    - lines.append
    - data.get
    - gunicorn.ctl.protocol.make_request
    - app.get
    - sock.recv
    - json.dumps
    - readline.write_history_file
    - args.append
    - w.get
    - data.keys
    - part.startswith
    - <builtin>.input
    - gunicorn.ctl.cli.format_stats
    - struct.pack
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: os.path.expanduser
    functionSourceFile: os
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: readline.read_history_file
    functionSourceFile: readline
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: <builtin>.input
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: line.lower
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: readline.write_history_file
    functionSourceFile: readline
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 6
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 391
    functionName: gunicorn.ctl.cli.main
    functionSourceFile: gunicorn.ctl.cli
    functionUses: 1
    functionsReached:
    - <builtin>.max
    - readline.read_history_file
    - dirty_arbiter.get
    - gunicorn.ctl.cli.format_all
    - os.path.expanduser
    - gunicorn.ctl.client.ControlClient.send_command
    - gunicorn.ctl.protocol.ControlProtocol.write_message
    - payload_data.decode
    - command.lower
    - lnr.get
    - <builtin>.sorted
    - os.path.isabs
    - socket.socket
    - line.lower
    - gunicorn.ctl.protocol.ControlProtocol.read_message
    - part.isdigit
    - gunicorn.ctl.cli.format_help
    - gunicorn.ctl.cli.format_listeners
    - client.send_command
    - gunicorn.ctl.cli.format_workers
    - <builtin>.len
    - gunicorn.ctl.cli.format_config
    - commands.items
    - command_parts.append
    - gunicorn.ctl.client.ControlClient.__init__
    - gunicorn.ctl.cli.run_interactive
    - argparse.ArgumentParser
    - gunicorn.ctl.cli.format_response
    - gunicorn.ctl.cli.format_dirty
    - gunicorn.ctl.protocol.ControlProtocol.encode_message
    - parser.add_argument
    - gunicorn.ctl.client.ControlClient.connect
    - parser.parse_args
    - gunicorn.ctl.client.parse_command
    - sock.sendall
    - struct.unpack
    - os.path.join
    - shlex.split
    - <builtin>.int
    - gunicorn.ctl.cli.run_command
    - app.split
    - commands.keys
    - <builtin>.print
    - gunicorn.ctl.client.ControlClient.close
    - json.loads
    - response.get
    - <builtin>.str
    - <builtin>.isinstance
    - arbiter.get
    - lines.append
    - os.getcwd
    - gunicorn.ctl.protocol.make_request
    - data.get
    - app.get
    - sock.recv
    - json.dumps
    - args.append
    - readline.write_history_file
    - w.get
    - data.keys
    - part.startswith
    - <builtin>.input
    - gunicorn.ctl.cli.format_stats
    - struct.pack
    - <builtin>.min
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_util':
  - 80
  - 18
  - 79
  '...fuzz_util.TestInput':
  - 33
  - 37
  - 69
  - 39
  - 70
  - 72
  - 42
  - 46
  - 47
  - 49
  - 53
  - 24
  - 26
  - 27
  - 28
  - 31
  '...fuzz_util.main':
  - 76
  - 77
  gunicorn:
  - 6
  gunicorn.__main__:
  - 10
  - 7
  gunicorn.app.base.Application.chdir:
  - 89
  - 90
  - 86
  gunicorn.app.base.Application.get_config_from_filename:
  - 97
  - 101
  - 102
  - 105
  - 106
  - 107
  - 108
  - 110
  - 112
  - 113
  - 114
  - 115
  - 117
  - 94
  gunicorn.app.base.Application.get_config_from_module_name:
  - 120
  gunicorn.app.base.Application.load_config:
  - 156
  - 157
  - 160
  - 163
  - 166
  - 167
  - 168
  - 170
  - 172
  - 173
  - 174
  - 175
  - 177
  - 178
  - 179
  - 182
  - 183
  - 185
  - 187
  - 190
  - 191
  - 193
  - 195
  - 199
  gunicorn.app.base.Application.load_config_from_file:
  - 152
  gunicorn.app.base.Application.load_config_from_module_name_or_filename:
  - 128
  - 129
  - 130
  - 132
  - 133
  - 136
  - 138
  - 140
  - 143
  - 145
  - 146
  - 123
  gunicorn.app.base.Application.run:
  - 202
  - 203
  - 205
  - 207
  - 210
  - 211
  - 212
  - 213
  - 214
  - 216
  - 217
  - 219
  - 220
  - 223
  - 225
  - 228
  - 229
  - 230
  - 231
  - 232
  - 233
  - 235
  gunicorn.app.base.BaseApplication:
  - 17
  gunicorn.app.base.BaseApplication.__init__:
  - 27
  gunicorn.app.base.BaseApplication.do_load_config:
  - 34
  - 35
  - 37
  - 38
  - 39
  - 30
  gunicorn.app.base.BaseApplication.load_config:
  - 52
  gunicorn.app.base.BaseApplication.load_default_config:
  - 43
  gunicorn.app.base.BaseApplication.reload:
  - 60
  - 61
  - 62
  gunicorn.app.base.BaseApplication.run:
  - 73
  - 74
  - 75
  - 71
  gunicorn.app.base.BaseApplication.wsgi:
  - 65
  - 66
  gunicorn.app.pasterapp.get_wsgi_app:
  - 18
  - 21
  - 15
  gunicorn.app.pasterapp.has_logging_config:
  - 27
  - 28
  - 29
  gunicorn.app.pasterapp.serve:
  - 33
  - 74
  - 44
  - 46
  - 47
  - 48
  - 50
  - 51
  gunicorn.app.pasterapp.serve.PasterServerApplication.load_config:
  - 64
  - 65
  - 67
  - 68
  - 69
  - 55
  - 57
  - 58
  - 60
  - 61
  - 63
  gunicorn.app.wsgiapp:
  - 69
  - 70
  gunicorn.app.wsgiapp.WSGIApplication.init:
  - 33
  - 34
  - 16
  - 19
  - 20
  - 22
  - 25
  - 28
  - 29
  gunicorn.app.wsgiapp.WSGIApplication.load:
  - 57
  - 54
  - 55
  gunicorn.app.wsgiapp.WSGIApplication.load_config:
  - 40
  - 41
  - 38
  gunicorn.app.wsgiapp.WSGIApplication.load_pasteapp:
  - 51
  gunicorn.app.wsgiapp.WSGIApplication.load_wsgiapp:
  - 47
  gunicorn.app.wsgiapp.run:
  - 66
  - 61
  gunicorn.arbiter.Arbiter:
  - 107
  - 46
  - 47
  - 48
  - 49
  - 24
  gunicorn.arbiter.Arbiter.__init__:
  - 88
  - 91
  - 61
  - 63
  gunicorn.arbiter.Arbiter._cleanup_orphaned_dirty_arbiter:
  - 802
  - 803
  - 807
  - 808
  - 811
  - 813
  - 814
  - 816
  - 817
  - 819
  - 794
  - 829
  - 799
  gunicorn.arbiter.Arbiter._get_control_socket_path:
  - 944
  - 945
  - 942
  gunicorn.arbiter.Arbiter._get_dirty_pidfile_path:
  - 791
  - 790
  - 783
  gunicorn.arbiter.Arbiter._set_num_workers:
  - 106
  gunicorn.arbiter.Arbiter._start_control_server:
  - 962
  - 966
  - 969
  - 971
  - 949
  - 955
  - 956
  gunicorn.arbiter.Arbiter._stop_control_server:
  - 978
  - 980
  - 982
  - 975
  gunicorn.arbiter.Arbiter.halt:
  - 384
  - 370
  - 372
  - 374
  - 377
  - 378
  - 379
  - 381
  - 382
  - 383
  gunicorn.arbiter.Arbiter.handle_chld:
  - 266
  - 267
  - 268
  gunicorn.arbiter.Arbiter.handle_hup:
  - 275
  - 281
  - 282
  - 284
  - 285
  gunicorn.arbiter.Arbiter.handle_int:
  - 292
  - 293
  gunicorn.arbiter.Arbiter.handle_quit:
  - 297
  - 298
  gunicorn.arbiter.Arbiter.handle_term:
  - 288
  gunicorn.arbiter.Arbiter.handle_ttin:
  - 307
  - 302
  gunicorn.arbiter.Arbiter.handle_ttou:
  - 314
  - 317
  - 310
  gunicorn.arbiter.Arbiter.handle_usr1:
  - 320
  - 324
  - 325
  - 327
  - 328
  gunicorn.arbiter.Arbiter.handle_usr2:
  - 337
  - 331
  gunicorn.arbiter.Arbiter.handle_winch:
  - 340
  - 341
  - 342
  - 344
  - 346
  gunicorn.arbiter.Arbiter.init_signals:
  - 202
  - 206
  - 209
  - 210
  - 211
  gunicorn.arbiter.Arbiter.kill_dirty_arbiter:
  - 880
  - 889
  - 891
  - 885
  gunicorn.arbiter.Arbiter.kill_worker:
  - 768
  - 770
  - 771
  - 772
  - 756
  - 763
  - 765
  gunicorn.arbiter.Arbiter.kill_workers:
  - 752
  - 753
  - 747
  - 751
  gunicorn.arbiter.Arbiter.manage_dirty_arbiter:
  - 930
  - 933
  - 934
  - 935
  - 927
  gunicorn.arbiter.Arbiter.manage_workers:
  - 673
  - 674
  - 677
  - 678
  - 652
  - 656
  - 657
  - 659
  - 660
  - 661
  - 662
  - 663
  - 665
  - 666
  - 668
  gunicorn.arbiter.Arbiter.maybe_promote_master:
  - 352
  - 353
  - 360
  - 361
  - 363
  - 349
  gunicorn.arbiter.Arbiter.murder_workers:
  - 576
  - 578
  - 579
  - 581
  - 586
  - 587
  - 589
  - 591
  - 573
  gunicorn.arbiter.Arbiter.reap_dirty_arbiter:
  - 896
  - 899
  - 903
  - 904
  - 907
  - 908
  - 909
  - 910
  - 913
  - 914
  - 915
  - 916
  - 922
  gunicorn.arbiter.Arbiter.reap_workers:
  - 642
  - 643
  - 645
  - 646
  - 648
  - 594
  - 599
  - 600
  - 602
  - 609
  - 610
  - 611
  - 612
  - 614
  - 616
  - 617
  - 621
  - 623
  - 624
  - 626
  - 629
  - 631
  - 632
  - 635
  - 638
  gunicorn.arbiter.Arbiter.reexec:
  - 482
  - 484
  - 485
  - 487
  - 488
  - 489
  - 491
  - 492
  - 494
  - 497
  - 466
  - 469
  - 470
  - 473
  - 474
  - 477
  - 478
  - 479
  gunicorn.arbiter.Arbiter.reload:
  - 519
  - 520
  - 523
  - 526
  - 528
  - 529
  - 531
  - 532
  - 533
  - 536
  - 539
  - 540
  - 543
  - 544
  - 545
  - 548
  - 554
  - 555
  - 558
  - 561
  - 562
  - 563
  - 566
  - 567
  - 569
  - 570
  - 506
  - 507
  gunicorn.arbiter.Arbiter.run:
  - 256
  - 257
  - 258
  - 259
  - 218
  - 219
  - 220
  - 223
  - 226
  - 229
  - 230
  - 231
  - 234
  - 235
  - 236
  - 237
  - 241
  - 242
  - 244
  - 245
  - 246
  - 248
  - 250
  - 254
  gunicorn.arbiter.Arbiter.setup:
  - 128
  - 130
  - 131
  - 134
  - 135
  - 138
  - 139
  - 113
  - 114
  - 117
  - 118
  - 126
  - 127
  gunicorn.arbiter.Arbiter.signal:
  - 214
  - 215
  gunicorn.arbiter.Arbiter.signal_chld:
  - 262
  - 263
  gunicorn.arbiter.Arbiter.spawn_dirty_arbiter:
  - 865
  - 834
  - 871
  - 872
  - 843
  - 876
  - 877
  - 847
  - 850
  - 852
  - 858
  - 859
  - 863
  gunicorn.arbiter.Arbiter.spawn_worker:
  - 685
  - 688
  - 689
  - 690
  - 697
  - 698
  - 701
  - 703
  - 704
  - 705
  - 706
  - 707
  - 708
  - 709
  - 713
  - 715
  - 716
  - 717
  - 719
  - 720
  - 721
  - 722
  - 723
  - 724
  - 726
  - 728
  - 729
  - 731
  - 732
  gunicorn.arbiter.Arbiter.spawn_workers:
  - 744
  - 743
  - 742
  - 735
  gunicorn.arbiter.Arbiter.start:
  - 142
  - 145
  - 148
  - 150
  - 151
  - 155
  - 156
  - 158
  - 160
  - 161
  - 162
  - 164
  - 166
  - 168
  - 169
  - 171
  - 174
  - 176
  - 177
  - 179
  - 180
  - 182
  - 183
  - 184
  - 185
  - 186
  - 189
  - 190
  - 193
  - 194
  - 197
  - 199
  gunicorn.arbiter.Arbiter.stop:
  - 412
  - 423
  - 427
  - 429
  - 432
  - 433
  - 436
  - 439
  - 441
  - 443
  - 444
  - 445
  - 447
  - 448
  - 449
  - 451
  - 454
  - 455
  - 456
  - 458
  - 459
  - 460
  - 462
  - 463
  gunicorn.arbiter.Arbiter.wait_for_signals:
  - 387
  - 394
  - 395
  - 396
  - 400
  - 401
  - 402
  - 408
  gunicorn.arbiter.Arbiter.wakeup:
  - 366
  - 367
  gunicorn.asgi:
  - 5
  gunicorn.asgi.lifespan:
  - 5
  gunicorn.asgi.lifespan.LifespanManager:
  - 17
  gunicorn.asgi.lifespan.LifespanManager.__init__:
  - 33
  - 44
  - 45
  - 49
  gunicorn.asgi.lifespan.LifespanManager._receive:
  - 152
  - 153
  gunicorn.asgi.lifespan.LifespanManager._run_lifespan:
  - 131
  - 133
  - 135
  - 136
  - 138
  - 139
  - 140
  - 144
  - 147
  - 148
  - 149
  - 125
  - 127
  gunicorn.asgi.lifespan.LifespanManager._send:
  - 160
  - 161
  - 163
  - 165
  - 166
  - 167
  - 170
  - 171
  - 172
  - 174
  - 175
  - 176
  - 177
  - 156
  - 159
  gunicorn.asgi.lifespan.LifespanManager.shutdown:
  - 96
  - 100
  - 104
  - 105
  - 109
  - 111
  - 112
  - 115
  - 116
  - 118
  - 122
  - 91
  - 95
  gunicorn.asgi.lifespan.LifespanManager.startup:
  - 66
  - 69
  - 73
  - 74
  - 78
  - 79
  - 82
  - 83
  - 84
  - 54
  - 88
  gunicorn.asgi.message:
  - 37
  - 5
  - 38
  - 40
  - 39
  gunicorn.asgi.message.AsyncRequest:
  - 64
  gunicorn.asgi.message.AsyncRequest.__init__:
  - 104
  - 99
  - 93
  gunicorn.asgi.message.AsyncRequest._chunked_body_reader:
  - 641
  - 642
  - 643
  - 645
  - 647
  - 650
  - 652
  - 654
  - 660
  - 661
  - 663
  - 664
  - 667
  - 668
  - 670
  - 671
  - 672
  - 675
  - 636
  - 639
  gunicorn.asgi.message.AsyncRequest._handle_proxy_protocol:
  - 202
  - 207
  - 208
  - 211
  - 212
  - 213
  - 216
  - 217
  - 218
  gunicorn.asgi.message.AsyncRequest._parse:
  - 161
  - 162
  - 163
  - 164
  - 169
  - 170
  - 140
  - 141
  - 142
  - 172
  - 173
  - 175
  - 146
  - 147
  - 150
  - 152
  - 155
  - 158
  gunicorn.asgi.message.AsyncRequest._parse_headers:
  - 512
  - 425
  - 429
  - 435
  - 437
  - 438
  - 439
  - 444
  - 447
  - 448
  - 449
  - 451
  - 452
  - 453
  - 454
  - 457
  - 458
  - 461
  - 462
  - 464
  - 465
  - 466
  - 468
  - 469
  - 471
  - 474
  - 477
  - 480
  - 481
  - 492
  - 495
  - 496
  - 502
  - 503
  - 505
  - 507
  gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v1:
  - 257
  - 259
  - 260
  - 263
  - 265
  - 266
  - 271
  - 272
  - 276
  - 231
  - 236
  - 238
  - 239
  - 241
  - 242
  - 243
  - 245
  - 247
  - 254
  gunicorn.asgi.message.AsyncRequest._parse_proxy_protocol_v2:
  - 290
  - 295
  - 296
  - 301
  - 305
  - 310
  - 315
  - 316
  - 319
  - 327
  - 334
  - 337
  - 339
  - 340
  - 342
  - 343
  - 344
  - 345
  - 348
  - 349
  - 351
  - 352
  - 353
  - 354
  - 357
  - 366
  - 380
  gunicorn.asgi.message.AsyncRequest._parse_request_line:
  - 384
  - 385
  - 416
  - 417
  - 419
  - 420
  - 421
  - 391
  - 392
  - 394
  - 396
  - 398
  - 399
  - 404
  - 408
  - 383
  gunicorn.asgi.message.AsyncRequest._proxy_protocol_access_check:
  - 224
  - 225
  - 226
  - 227
  gunicorn.asgi.message.AsyncRequest._read_chunk_size_line:
  - 679
  - 680
  - 682
  - 683
  - 685
  - 686
  - 687
  gunicorn.asgi.message.AsyncRequest._read_chunked_body:
  - 625
  - 626
  - 627
  - 630
  gunicorn.asgi.message.AsyncRequest._read_into:
  - 178
  - 179
  - 180
  - 182
  gunicorn.asgi.message.AsyncRequest._read_length_body:
  - 614
  - 615
  - 618
  - 619
  - 620
  - 621
  gunicorn.asgi.message.AsyncRequest._read_line:
  - 194
  - 196
  - 197
  - 199
  - 185
  - 186
  - 189
  - 190
  - 191
  gunicorn.asgi.message.AsyncRequest._set_body_reader:
  - 517
  - 521
  - 522
  - 523
  - 526
  - 527
  - 528
  - 529
  - 530
  - 533
  - 534
  - 536
  - 537
  - 539
  - 543
  - 544
  - 546
  - 551
  - 553
  - 554
  - 560
  gunicorn.asgi.message.AsyncRequest._skip_trailers:
  - 690
  - 691
  - 693
  - 694
  - 696
  - 697
  - 698
  - 701
  gunicorn.asgi.message.AsyncRequest.drain_body:
  - 705
  - 710
  - 711
  gunicorn.asgi.message.AsyncRequest.force_close:
  - 571
  gunicorn.asgi.message.AsyncRequest.get_header:
  - 592
  - 589
  - 590
  - 591
  gunicorn.asgi.message.AsyncRequest.parse:
  - 120
  - 136
  - 135
  gunicorn.asgi.message.AsyncRequest.read_body:
  - 608
  - 609
  - 611
  - 597
  - 605
  gunicorn.asgi.message.AsyncRequest.should_close:
  - 576
  - 578
  - 579
  - 580
  - 581
  - 583
  - 575
  gunicorn.asgi.message._ip_in_allow_list:
  - 44
  - 51
  - 54
  - 57
  - 58
  gunicorn.asgi.protocol:
  - 5
  gunicorn.asgi.protocol.ASGIProtocol:
  - 50
  gunicorn.asgi.protocol.ASGIProtocol._build_environ:
  - 482
  - 493
  - 494
  gunicorn.asgi.protocol.ASGIProtocol._build_http2_environ:
  - 930
  - 940
  - 941
  gunicorn.asgi.protocol.ASGIProtocol._build_http2_scope:
  - 896
  - 905
  - 906
  - 913
  - 918
  - 887
  - 889
  - 890
  - 891
  - 892
  - 895
  gunicorn.asgi.protocol.ASGIProtocol._build_http_scope:
  - 448
  - 449
  - 458
  - 459
  - 467
  - 471
  - 442
  - 445
  - 446
  gunicorn.asgi.protocol.ASGIProtocol._build_websocket_scope:
  - 513
  - 514
  - 522
  - 523
  - 500
  - 532
  - 503
  - 504
  - 508
  - 509
  - 510
  gunicorn.asgi.protocol.ASGIProtocol._cancel_task_if_pending:
  - 138
  - 139
  - 140
  gunicorn.asgi.protocol.ASGIProtocol._close_transport:
  - 650
  - 655
  - 658
  - 659
  - 660
  gunicorn.asgi.protocol.ASGIProtocol._get_reason_phrase:
  - 611
  - 647
  gunicorn.asgi.protocol.ASGIProtocol._handle_connection:
  - 162
  - 163
  - 166
  - 167
  - 174
  - 175
  - 176
  - 183
  - 193
  - 197
  - 198
  - 202
  - 210
  - 211
  - 215
  - 219
  - 223
  - 228
  - 230
  gunicorn.asgi.protocol.ASGIProtocol._handle_http2_connection:
  - 666
  - 670
  - 671
  - 676
  - 677
  - 682
  - 685
  - 692
  - 696
  - 699
  - 701
  - 705
  - 707
  - 708
  - 713
  - 716
  - 719
  - 720
  - 727
  - 729
  - 731
  - 734
  gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request:
  - 821
  - 822
  - 825
  - 826
  - 828
  - 832
  - 835
  - 836
  - 837
  - 838
  - 839
  - 840
  - 842
  - 844
  - 845
  - 846
  - 849
  - 851
  - 852
  - 855
  - 856
  - 857
  - 858
  - 861
  - 863
  - 737
  - 739
  - 867
  - 871
  - 872
  - 873
  - 877
  - 878
  - 879
  - 881
  - 882
  - 884
  gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request.receive:
  - 752
  gunicorn.asgi.protocol.ASGIProtocol._handle_http2_request.send:
  - 768
  - 771
  - 772
  - 773
  - 774
  - 775
  - 776
  - 777
  - 780
  - 781
  - 782
  - 786
  - 788
  - 789
  - 790
  - 792
  - 793
  - 796
  - 797
  - 799
  - 802
  - 805
  - 806
  - 807
  - 809
  - 812
  - 813
  - 814
  - 815
  - 816
  - 817
  - 818
  - 765
  - 767
  gunicorn.asgi.protocol.ASGIProtocol._handle_http_request:
  - 388
  - 391
  - 264
  - 265
  - 392
  - 393
  - 401
  - 403
  - 404
  - 277
  - 405
  - 407
  - 282
  - 283
  - 410
  - 291
  - 369
  - 373
  - 374
  - 376
  - 378
  - 382
  - 383
  gunicorn.asgi.protocol.ASGIProtocol._handle_http_request.receive:
  - 296
  - 299
  - 302
  gunicorn.asgi.protocol.ASGIProtocol._handle_http_request.send:
  - 313
  - 318
  - 320
  - 321
  - 322
  - 325
  - 326
  - 327
  - 331
  - 334
  - 335
  - 336
  - 341
  - 343
  - 345
  - 347
  - 348
  - 349
  - 351
  - 352
  - 355
  - 356
  - 358
  - 359
  - 360
  - 362
  - 363
  - 365
  gunicorn.asgi.protocol.ASGIProtocol._handle_websocket:
  - 257
  - 258
  - 261
  - 254
  gunicorn.asgi.protocol.ASGIProtocol._is_websocket_upgrade:
  - 233
  - 241
  - 246
  - 247
  - 248
  - 249
  - 250
  gunicorn.asgi.protocol.ASGIProtocol._read_body_to_queue:
  - 416
  - 419
  - 420
  - 421
  - 427
  - 434
  - 435
  gunicorn.asgi.protocol.ASGIProtocol._safe_write:
  - 153
  - 155
  - 156
  - 143
  gunicorn.asgi.protocol.ASGIProtocol._send_body:
  - 588
  - 589
  - 590
  - 592
  - 593
  - 595
  gunicorn.asgi.protocol.ASGIProtocol._send_error_response:
  - 608
  - 598
  - 599
  - 603
  - 607
  gunicorn.asgi.protocol.ASGIProtocol._send_informational:
  - 549
  - 552
  - 555
  - 556
  - 557
  - 558
  - 559
  - 563
  - 538
  gunicorn.asgi.protocol.ASGIProtocol._send_response_start:
  - 576
  - 577
  - 578
  - 579
  - 582
  - 584
  - 585
  - 566
  - 568
  - 574
  - 575
  gunicorn.asgi.protocol.ASGIProtocol.connection_lost:
  - 128
  - 129
  - 103
  - 135
  - 113
  - 118
  - 119
  - 122
  - 123
  - 126
  - 127
  gunicorn.asgi.protocol.ASGIProtocol.connection_made:
  - 72
  - 77
  - 78
  - 79
  - 80
  - 83
  - 84
  - 85
  - 91
  - 95
  gunicorn.asgi.protocol.ASGIProtocol.data_received:
  - 98
  - 99
  - 100
  gunicorn.asgi.protocol.ASGIResponseInfo:
  - 34
  gunicorn.asgi.protocol.ASGIResponseInfo.__init__:
  - 41
  - 42
  - 43
  - 44
  - 45
  - 46
  gunicorn.asgi.protocol._normalize_sockaddr:
  - 24
  - 30
  gunicorn.asgi.unreader:
  - 5
  gunicorn.asgi.unreader.AsyncUnreader:
  - 15
  gunicorn.asgi.unreader.AsyncUnreader.__init__:
  - 29
  - 22
  gunicorn.asgi.unreader.AsyncUnreader._read_chunk:
  - 80
  - 78
  gunicorn.asgi.unreader.AsyncUnreader.has_buffered_data:
  - 96
  - 97
  - 98
  - 99
  - 95
  gunicorn.asgi.unreader.AsyncUnreader.read:
  - 33
  - 42
  - 45
  - 46
  - 48
  - 52
  - 55
  - 56
  - 57
  - 59
  - 60
  - 64
  - 65
  - 66
  - 67
  - 68
  - 70
  - 72
  - 73
  - 74
  gunicorn.asgi.unreader.AsyncUnreader.unread:
  - 90
  - 91
  - 92
  - 85
  gunicorn.asgi.uwsgi:
  - 5
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest:
  - 18
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest._async_parse:
  - 98
  - 102
  - 103
  - 104
  - 106
  - 108
  - 109
  - 88
  - 90
  - 91
  - 95
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest._async_read_exact:
  - 112
  - 113
  - 114
  - 115
  - 116
  - 118
  - 119
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest._set_body_reader:
  - 122
  - 124
  - 126
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest.drain_body:
  - 155
  - 156
  - 150
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest.get_header:
  - 160
  - 169
  - 170
  - 168
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest.parse:
  - 66
  - 83
  - 84
  - 82
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest.read_body:
  - 133
  - 141
  - 143
  - 144
  - 145
  - 146
  gunicorn.asgi.websocket:
  - 5
  gunicorn.asgi.websocket.WebSocketProtocol:
  - 43
  gunicorn.asgi.websocket.WebSocketProtocol.__init__:
  - 46
  - 71
  gunicorn.asgi.websocket.WebSocketProtocol._handle_close:
  - 324
  - 325
  - 315
  - 316
  - 317
  - 318
  gunicorn.asgi.websocket.WebSocketProtocol._handle_continuation:
  - 330
  gunicorn.asgi.websocket.WebSocketProtocol._read_exact:
  - 298
  - 300
  gunicorn.asgi.websocket.WebSocketProtocol._read_frame:
  - 257
  - 260
  - 261
  - 265
  - 266
  - 270
  - 273
  - 274
  - 275
  - 277
  - 278
  - 280
  - 286
  - 287
  - 216
  - 222
  - 223
  - 235
  - 236
  - 243
  - 244
  - 248
  - 249
  - 250
  - 252
  - 253
  - 254
  - 255
  gunicorn.asgi.websocket.WebSocketProtocol._read_frames:
  - 193
  - 194
  - 198
  - 200
  - 170
  - 173
  - 174
  - 205
  - 208
  - 210
  - 179
  - 180
  - 183
  - 184
  - 185
  - 188
  - 189
  gunicorn.asgi.websocket.WebSocketProtocol._receive:
  - 97
  - 98
  gunicorn.asgi.websocket.WebSocketProtocol._send:
  - 101
  - 104
  - 105
  - 107
  - 110
  - 111
  - 113
  - 116
  - 117
  - 118
  - 119
  - 121
  - 122
  - 123
  - 124
  gunicorn.asgi.websocket.WebSocketProtocol._send_accept:
  - 128
  - 160
  - 161
  - 131
  - 132
  - 162
  - 163
  - 164
  - 136
  - 166
  - 167
  - 140
  - 141
  - 153
  - 154
  - 155
  - 158
  - 159
  gunicorn.asgi.websocket.WebSocketProtocol._send_close:
  - 363
  - 364
  - 365
  - 366
  - 367
  gunicorn.asgi.websocket.WebSocketProtocol._send_frame:
  - 352
  - 354
  - 355
  - 358
  - 360
  - 334
  - 338
  - 339
  - 341
  - 342
  - 345
  - 348
  - 349
  - 350
  - 351
  gunicorn.asgi.websocket.WebSocketProtocol._unmask:
  - 312
  - 308
  - 309
  gunicorn.asgi.websocket.WebSocketProtocol.run:
  - 74
  - 76
  - 79
  - 82
  - 84
  - 86
  - 88
  - 93
  - 94
  gunicorn.config:
  - 356
  - 2413
  gunicorn.config.Bind:
  - 636
  - 637
  gunicorn.config.Chdir:
  - 1109
  gunicorn.config.ChildExit:
  - 2025
  - 2020
  gunicorn.config.Config.__getattr__:
  - 67
  - 69
  - 71
  gunicorn.config.Config.__init__:
  - 49
  - 53
  - 54
  gunicorn.config.Config.__setattr__:
  - 74
  - 76
  gunicorn.config.Config.__str__:
  - 64
  - 58
  - 59
  - 61
  - 62
  - 63
  gunicorn.config.Config.address:
  - 134
  - 135
  gunicorn.config.Config.env:
  - 209
  - 212
  - 215
  - 216
  - 218
  gunicorn.config.Config.forwarded_allow_networks:
  - 180
  - 181
  - 183
  gunicorn.config.Config.get_cmd_args_from_env:
  - 84
  - 85
  gunicorn.config.Config.gid:
  - 143
  gunicorn.config.Config.logger_class:
  - 162
  - 163
  - 166
  - 171
  - 172
  - 155
  - 156
  gunicorn.config.Config.parser:
  - 98
  - 100
  - 101
  - 102
  - 93
  - 94
  gunicorn.config.Config.paste_global_conf:
  - 243
  - 244
  - 248
  - 249
  - 251
  - 254
  - 255
  gunicorn.config.Config.proc_name:
  - 147
  - 148
  - 151
  gunicorn.config.Config.proxy_allow_networks:
  - 193
  - 190
  - 191
  gunicorn.config.Config.reuse_port:
  - 239
  gunicorn.config.Config.sendfile:
  - 232
  - 228
  - 231
  gunicorn.config.Config.set:
  - 81
  - 79
  gunicorn.config.Config.ssl_options:
  - 202
  - 203
  - 204
  gunicorn.config.Config.uid:
  - 139
  gunicorn.config.Config.worker_class:
  - 128
  - 129
  - 120
  - 123
  - 124
  - 127
  gunicorn.config.Config.worker_class_str:
  - 112
  - 113
  - 108
  - 110
  gunicorn.config.DirtyPostFork:
  - 3064
  - 3069
  gunicorn.config.DirtyWorkerExit:
  - 3107
  - 3102
  gunicorn.config.DirtyWorkerInit:
  - 3088
  - 3083
  gunicorn.config.ForwardedAllowIPS:
  - 1321
  gunicorn.config.Group:
  - 1218
  gunicorn.config.NewSSLContext:
  - 2098
  - 2092
  gunicorn.config.NewSSLContext.ssl_context:
  - 2096
  gunicorn.config.NumWorkersChanged:
  - 2056
  - 2061
  gunicorn.config.OnDirtyStarting:
  - 3050
  - 3045
  gunicorn.config.OnExit:
  - 2081
  - 2076
  gunicorn.config.OnReload:
  - 1852
  - 1847
  gunicorn.config.OnStarting:
  - 1836
  - 1831
  gunicorn.config.PostRequest:
  - 2007
  gunicorn.config.PostWorkerInit:
  - 1913
  - 1919
  gunicorn.config.Postfork:
  - 1896
  - 1901
  gunicorn.config.PreExec:
  - 1969
  - 1974
  gunicorn.config.PreRequest:
  - 1985
  - 1990
  gunicorn.config.PreRequest.pre_request:
  - 1989
  gunicorn.config.Prefork:
  - 1884
  - 1879
  gunicorn.config.SSLVersion:
  - 2292
  gunicorn.config.Setting.__init__:
  - 298
  - 299
  gunicorn.config.Setting.__repr__:
  - 351
  gunicorn.config.Setting.add_option:
  - 320
  - 321
  - 323
  - 326
  - 329
  - 302
  - 304
  - 307
  - 317
  gunicorn.config.Setting.copy:
  - 332
  gunicorn.config.Setting.set:
  - 338
  - 340
  gunicorn.config.SettingMeta.__new__:
  - 263
  - 264
  - 265
  - 266
  - 268
  - 269
  - 271
  - 272
  - 273
  gunicorn.config.SettingMeta.fmt_desc:
  - 277
  - 278
  - 279
  gunicorn.config.SyslogTo:
  - 1609
  - 1611
  - 1613
  gunicorn.config.User:
  - 1201
  gunicorn.config.WhenReady:
  - 1868
  - 1863
  gunicorn.config.WorkerAbort:
  - 1955
  - 1949
  gunicorn.config.WorkerExit:
  - 2044
  - 2039
  gunicorn.config.WorkerInt:
  - 1937
  - 1931
  gunicorn.config.Workers:
  - 690
  gunicorn.config.auto_int:
  - 41
  - 42
  - 43
  gunicorn.config.get_default_config_file:
  - 584
  - 586
  gunicorn.config.make_settings:
  - 32
  - 33
  - 35
  - 31
  gunicorn.config.validate_asgi_lifespan:
  - 2794
  - 2796
  - 2798
  - 2799
  gunicorn.config.validate_asgi_loop:
  - 2785
  - 2787
  - 2788
  - 2783
  gunicorn.config.validate_bool:
  - 360
  - 363
  - 365
  - 367
  - 369
  gunicorn.config.validate_callable._validate_callable:
  - 483
  - 484
  - 490
  - 492
  - 476
  - 478
  gunicorn.config.validate_chdir:
  - 546
  - 549
  - 543
  gunicorn.config.validate_class:
  - 467
  - 468
  - 469
  - 471
  gunicorn.config.validate_dict:
  - 376
  gunicorn.config.validate_file_exists:
  - 420
  - 422
  gunicorn.config.validate_group:
  - 513
  - 514
  - 516
  - 518
  - 519
  - 522
  gunicorn.config.validate_header_map_behaviour:
  - 2721
  - 2723
  - 2725
  - 2716
  - 2719
  gunicorn.config.validate_http2_frame_size:
  - 393
  - 394
  - 395
  - 397
  - 398
  gunicorn.config.validate_http_protocols:
  - 2434
  - 2435
  - 2438
  - 2439
  - 2443
  - 2444
  - 2451
  - 2423
  - 2429
  - 2431
  gunicorn.config.validate_list_of_existing_files:
  - 439
  gunicorn.config.validate_list_string:
  - 432
  - 435
  - 428
  gunicorn.config.validate_pos_int:
  - 386
  - 387
  - 382
  - 383
  gunicorn.config.validate_post_request:
  - 528
  - 530
  - 531
  - 533
  - 534
  - 535
  - 536
  gunicorn.config.validate_post_request.<lambda1>:
  - 534
  gunicorn.config.validate_post_request.<lambda2>:
  - 536
  gunicorn.config.validate_proxy_protocol:
  - 2125
  - 2130
  - 2132
  - 2134
  - 2137
  - 2143
  gunicorn.config.validate_reload_engine:
  - 577
  gunicorn.config.validate_ssl_version:
  - 406
  - 407
  gunicorn.config.validate_statsd_address:
  - 556
  - 557
  - 564
  - 565
  - 566
  - 569
  gunicorn.config.validate_string:
  - 416
  - 412
  - 414
  gunicorn.config.validate_string_to_addr_list:
  - 443
  - 452
  - 445
  - 446
  gunicorn.config.validate_string_to_list:
  - 458
  - 460
  - 463
  gunicorn.config.validate_user:
  - 499
  - 500
  - 501
  - 503
  - 504
  - 507
  gunicorn.ctl:
  - 5
  gunicorn.ctl.cli:
  - 448
  - 449
  - 5
  gunicorn.ctl.cli.format_all:
  - 172
  - 176
  - 177
  - 178
  - 179
  - 182
  - 183
  - 184
  - 185
  - 186
  - 187
  - 188
  - 189
  - 190
  - 191
  - 193
  - 195
  - 196
  - 199
  - 200
  - 201
  - 202
  - 203
  - 206
  - 207
  - 208
  - 209
  - 210
  - 211
  - 212
  - 213
  - 214
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 223
  - 225
  - 227
  - 228
  - 230
  gunicorn.ctl.cli.format_config:
  - 142
  - 146
  - 148
  - 149
  - 150
  - 152
  gunicorn.ctl.cli.format_dirty:
  - 45
  - 46
  - 50
  - 51
  - 53
  - 54
  - 55
  - 56
  - 57
  - 59
  - 60
  - 61
  - 62
  - 63
  - 66
  - 67
  - 69
  - 70
  - 71
  - 72
  - 73
  - 75
  - 76
  - 77
  - 78
  - 79
  - 81
  - 83
  gunicorn.ctl.cli.format_help:
  - 160
  - 163
  - 165
  - 166
  - 168
  - 156
  - 157
  - 159
  gunicorn.ctl.cli.format_listeners:
  - 129
  - 130
  - 131
  - 132
  - 133
  - 135
  - 136
  - 138
  - 120
  - 121
  - 122
  - 126
  - 127
  gunicorn.ctl.cli.format_response:
  - 256
  - 257
  - 258
  - 259
  - 260
  - 263
  - 264
  - 234
  - 244
  - 247
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  - 254
  - 255
  gunicorn.ctl.cli.format_stats:
  - 87
  - 90
  - 91
  - 92
  - 93
  - 94
  - 95
  - 97
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  - 110
  - 112
  - 113
  - 114
  - 116
  gunicorn.ctl.cli.format_workers:
  - 32
  - 33
  - 36
  - 38
  - 39
  - 41
  - 20
  - 21
  - 22
  - 26
  - 27
  - 29
  - 30
  - 31
  gunicorn.ctl.cli.main:
  - 417
  - 423
  - 392
  - 393
  - 429
  - 431
  - 433
  - 406
  - 439
  - 440
  - 442
  - 443
  - 412
  - 445
  gunicorn.ctl.cli.run_command:
  - 289
  - 290
  - 295
  - 269
  - 281
  - 282
  - 283
  - 284
  - 286
  - 287
  gunicorn.ctl.cli.run_interactive:
  - 384
  - 302
  - 319
  - 320
  - 322
  - 325
  - 326
  - 327
  - 330
  - 331
  - 333
  - 342
  - 344
  - 347
  - 350
  - 354
  - 355
  - 356
  - 358
  - 359
  - 361
  - 362
  - 365
  - 368
  - 369
  - 371
  - 375
  - 378
  - 381
  - 382
  gunicorn.ctl.client:
  - 5
  gunicorn.ctl.client.ControlClient:
  - 25
  gunicorn.ctl.client.ControlClient.__enter__:
  - 107
  gunicorn.ctl.client.ControlClient.__exit__:
  - 111
  gunicorn.ctl.client.ControlClient.__init__:
  - 35
  gunicorn.ctl.client.ControlClient.close:
  - 66
  - 67
  - 69
  gunicorn.ctl.client.ControlClient.connect:
  - 48
  - 54
  - 58
  - 59
  - 60
  gunicorn.ctl.client.ControlClient.send_command:
  - 96
  - 98
  - 101
  - 104
  - 75
  - 88
  - 89
  - 92
  - 95
  gunicorn.ctl.client.ControlClientError:
  - 21
  gunicorn.ctl.client.parse_command:
  - 132
  - 134
  - 135
  - 137
  - 139
  - 115
  - 124
  - 125
  gunicorn.ctl.handlers:
  - 5
  gunicorn.ctl.handlers.CommandHandlers:
  - 18
  gunicorn.ctl.handlers.CommandHandlers.__init__:
  - 26
  gunicorn.ctl.handlers.CommandHandlers._query_dirty_workers:
  - 546
  - 517
  - 549
  - 550
  - 552
  - 553
  - 554
  - 527
  - 528
  - 529
  - 530
  - 531
  - 537
  - 538
  - 539
  gunicorn.ctl.handlers.CommandHandlers._send_manage_message:
  - 384
  - 383
  - 393
  - 363
  - 364
  - 396
  - 397
  - 367
  - 368
  - 369
  - 399
  - 400
  - 401
  - 402
  - 405
  - 382
  - 351
  gunicorn.ctl.handlers.CommandHandlers.dirty_add:
  - 320
  - 309
  - 326
  - 327
  gunicorn.ctl.handlers.CommandHandlers.dirty_remove:
  - 330
  - 347
  - 348
  - 341
  gunicorn.ctl.handlers.CommandHandlers.help:
  - 562
  gunicorn.ctl.handlers.CommandHandlers.reload:
  - 427
  - 420
  gunicorn.ctl.handlers.CommandHandlers.reopen:
  - 437
  - 431
  gunicorn.ctl.handlers.CommandHandlers.show_all:
  - 482
  - 458
  - 491
  - 464
  - 497
  - 505
  - 475
  - 477
  - 478
  gunicorn.ctl.handlers.CommandHandlers.show_config:
  - 130
  - 149
  - 151
  - 153
  - 154
  - 155
  - 156
  - 157
  gunicorn.ctl.handlers.CommandHandlers.show_dirty:
  - 96
  - 98
  - 99
  - 70
  - 103
  - 106
  - 107
  - 80
  - 112
  - 113
  - 114
  - 115
  - 89
  - 94
  - 95
  gunicorn.ctl.handlers.CommandHandlers.show_listeners:
  - 225
  - 196
  - 204
  - 205
  - 208
  - 214
  - 216
  - 218
  - 223
  gunicorn.ctl.handlers.CommandHandlers.show_stats:
  - 165
  - 177
  - 178
  - 181
  - 182
  gunicorn.ctl.handlers.CommandHandlers.show_workers:
  - 65
  - 35
  - 47
  - 49
  - 51
  - 52
  - 56
  gunicorn.ctl.handlers.CommandHandlers.shutdown:
  - 441
  - 450
  - 451
  - 453
  gunicorn.ctl.handlers.CommandHandlers.worker_add:
  - 242
  - 228
  - 237
  gunicorn.ctl.handlers.CommandHandlers.worker_kill:
  - 288
  - 290
  - 297
  - 305
  - 279
  gunicorn.ctl.handlers.CommandHandlers.worker_remove:
  - 264
  - 251
  - 260
  - 270
  gunicorn.ctl.protocol:
  - 5
  gunicorn.ctl.protocol.ControlProtocol:
  - 32
  gunicorn.ctl.protocol.ControlProtocol.decode_message:
  - 67
  - 70
  - 71
  - 75
  - 58
  gunicorn.ctl.protocol.ControlProtocol.encode_message:
  - 43
  - 52
  - 53
  gunicorn.ctl.protocol.ControlProtocol.read_message:
  - 96
  - 97
  - 102
  - 104
  - 109
  - 110
  - 79
  - 111
  - 116
  - 94
  - 95
  gunicorn.ctl.protocol.ControlProtocol.read_message_async:
  - 134
  - 144
  - 145
  - 147
  - 151
  - 154
  gunicorn.ctl.protocol.ControlProtocol.write_message:
  - 129
  - 122
  - 130
  gunicorn.ctl.protocol.ControlProtocol.write_message_async:
  - 160
  - 169
  - 168
  - 167
  gunicorn.ctl.protocol.ProtocolError:
  - 28
  gunicorn.ctl.protocol.make_error_response:
  - 210
  gunicorn.ctl.protocol.make_request:
  - 173
  gunicorn.ctl.protocol.make_response:
  - 192
  gunicorn.ctl.server:
  - 5
  gunicorn.ctl.server.ControlSocketServer:
  - 26
  gunicorn.ctl.server.ControlSocketServer.__init__:
  - 34
  - 46
  gunicorn.ctl.server.ControlSocketServer._dispatch:
  - 193
  - 194
  - 197
  - 198
  - 201
  - 171
  - 203
  - 204
  - 205
  - 180
  - 181
  - 182
  - 184
  - 185
  - 189
  - 190
  - 191
  gunicorn.ctl.server.ControlSocketServer._execute_command:
  - 224
  - 225
  - 226
  - 227
  - 228
  - 229
  - 230
  - 231
  - 232
  - 233
  - 234
  - 236
  - 237
  - 238
  - 208
  - 217
  - 220
  gunicorn.ctl.server.ControlSocketServer._handle_client:
  - 161
  - 130
  - 162
  - 164
  - 166
  - 140
  - 141
  - 155
  - 158
  gunicorn.ctl.server.ControlSocketServer._handle_dirty:
  - 288
  - 291
  - 294
  - 295
  - 296
  - 297
  - 298
  - 299
  - 287
  gunicorn.ctl.server.ControlSocketServer._handle_show:
  - 256
  - 257
  - 258
  - 259
  - 260
  - 243
  - 244
  - 247
  - 249
  - 250
  - 251
  - 252
  - 253
  - 254
  - 255
  gunicorn.ctl.server.ControlSocketServer._handle_worker:
  - 265
  - 266
  - 269
  - 272
  - 273
  - 274
  - 275
  - 276
  - 277
  - 278
  - 279
  - 281
  - 282
  gunicorn.ctl.server.ControlSocketServer._run_loop:
  - 89
  - 91
  - 93
  - 94
  gunicorn.ctl.server.ControlSocketServer._serve:
  - 97
  - 98
  - 101
  - 102
  - 105
  - 111
  - 113
  - 114
  - 119
  - 123
  - 125
  gunicorn.ctl.server.ControlSocketServer._shutdown:
  - 84
  - 85
  - 86
  gunicorn.ctl.server.ControlSocketServer.start:
  - 58
  - 59
  - 53
  - 54
  gunicorn.ctl.server.ControlSocketServer.stop:
  - 68
  - 70
  - 72
  - 73
  - 77
  - 79
  - 62
  - 63
  gunicorn.debug:
  - 5
  - 15
  gunicorn.debug.Spew.__call__:
  - 33
  - 37
  - 42
  - 43
  - 44
  - 47
  - 48
  - 49
  - 50
  - 51
  - 52
  - 53
  - 54
  - 25
  - 27
  - 29
  - 30
  gunicorn.debug.spew:
  - 59
  - 62
  gunicorn.debug.unspew:
  - 66
  - 68
  gunicorn.dirty:
  - 5
  gunicorn.dirty.app:
  - 5
  gunicorn.dirty.app.DirtyApp:
  - 19
  gunicorn.dirty.app.DirtyApp.__call__:
  - 129
  - 127
  - 126
  - 111
  gunicorn.dirty.app.DirtyApp.close:
  - 132
  gunicorn.dirty.app.DirtyApp.init:
  - 99
  gunicorn.dirty.app.get_app_workers_attribute:
  - 350
  - 325
  - 329
  - 332
  - 301
  - 338
  - 343
  - 318
  gunicorn.dirty.app.load_dirty_app:
  - 229
  - 262
  - 236
  - 271
  - 240
  - 272
  - 243
  - 216
  - 249
  - 254
  gunicorn.dirty.app.load_dirty_apps:
  - 296
  - 282
  - 295
  gunicorn.dirty.app.parse_dirty_app_spec:
  - 198
  - 170
  - 141
  - 177
  - 180
  - 184
  - 190
  gunicorn.dirty.arbiter:
  - 5
  gunicorn.dirty.arbiter.DirtyArbiter:
  - 50
  - 60
  - 61
  gunicorn.dirty.arbiter.DirtyArbiter.__init__:
  - 67
  - 79
  - 83
  - 84
  - 119
  gunicorn.dirty.arbiter.DirtyArbiter._cleanup_sync:
  - 1152
  - 1129
  - 1131
  - 1133
  - 1138
  - 1140
  - 1146
  - 1147
  - 1148
  gunicorn.dirty.arbiter.DirtyArbiter._cleanup_worker:
  - 1026
  - 1029
  - 1030
  - 1031
  - 1032
  - 1035
  - 1037
  - 1038
  - 1039
  - 1040
  - 1041
  - 1043
  - 1012
  - 1018
  - 1021
  - 1022
  gunicorn.dirty.arbiter.DirtyArbiter._close_worker_connection:
  - 648
  - 649
  - 650
  - 647
  gunicorn.dirty.arbiter.DirtyArbiter._execute_on_worker:
  - 524
  - 531
  - 534
  - 535
  - 540
  - 541
  - 545
  - 547
  - 549
  - 552
  - 555
  - 556
  - 560
  - 561
  - 565
  - 567
  - 571
  - 574
  - 575
  - 576
  - 578
  - 581
  gunicorn.dirty.arbiter.DirtyArbiter._get_apps_for_new_worker:
  - 192
  - 194
  - 195
  - 173
  - 186
  - 188
  - 191
  gunicorn.dirty.arbiter.DirtyArbiter._get_available_worker:
  - 610
  - 612
  - 584
  - 616
  - 617
  - 618
  - 621
  - 623
  - 599
  - 602
  - 603
  gunicorn.dirty.arbiter.DirtyArbiter._get_minimum_workers:
  - 168
  - 169
  - 156
  - 166
  gunicorn.dirty.arbiter.DirtyArbiter._get_worker_connection:
  - 642
  - 626
  - 627
  - 630
  - 631
  - 635
  - 636
  - 638
  gunicorn.dirty.arbiter.DirtyArbiter._handle_sigchld:
  - 400
  - 402
  - 403
  - 399
  gunicorn.dirty.arbiter.DirtyArbiter._parse_app_specs:
  - 133
  - 134
  - 137
  - 139
  - 142
  - 153
  - 122
  gunicorn.dirty.arbiter.DirtyArbiter._register_worker_apps:
  - 200
  - 210
  - 212
  - 213
  - 214
  - 215
  gunicorn.dirty.arbiter.DirtyArbiter._run_async:
  - 352
  - 358
  - 360
  - 377
  - 363
  - 366
  - 370
  - 381
  - 375
  - 344
  - 345
  - 348
  - 349
  gunicorn.dirty.arbiter.DirtyArbiter._shutdown:
  - 339
  - 340
  - 341
  gunicorn.dirty.arbiter.DirtyArbiter._signal_handler:
  - 281
  - 282
  - 284
  - 285
  - 286
  - 290
  - 292
  - 295
  - 297
  - 298
  - 299
  - 303
  - 306
  - 308
  - 309
  - 310
  - 314
  - 316
  - 317
  - 318
  - 325
  - 327
  - 328
  - 329
  - 335
  - 336
  gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda1>:
  - 286
  gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda2>:
  - 299
  gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda3>:
  - 310
  gunicorn.dirty.arbiter.DirtyArbiter._signal_handler.<lambda4>:
  - 329
  gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer:
  - 520
  - 498
  - 499
  gunicorn.dirty.arbiter.DirtyArbiter._start_worker_consumer.consumer:
  - 513
  - 514
  - 516
  - 505
  - 507
  - 510
  - 511
  gunicorn.dirty.arbiter.DirtyArbiter._unregister_worker:
  - 227
  - 230
  - 231
  - 232
  - 218
  gunicorn.dirty.arbiter.DirtyArbiter._worker_monitor:
  - 384
  - 386
  - 389
  - 390
  - 392
  - 395
  - 396
  gunicorn.dirty.arbiter.DirtyArbiter.handle_client:
  - 418
  - 422
  - 425
  - 426
  - 428
  - 429
  - 431
  - 432
  - 435
  - 437
  - 406
  - 439
  - 441
  - 413
  gunicorn.dirty.arbiter.DirtyArbiter.handle_manage_request:
  - 768
  - 773
  - 774
  - 775
  - 778
  - 781
  - 783
  - 784
  - 787
  - 788
  - 789
  - 698
  - 707
  - 708
  - 709
  - 712
  - 715
  - 716
  - 717
  - 720
  - 723
  - 730
  - 739
  - 743
  - 745
  - 748
  - 749
  - 751
  - 757
  - 758
  - 759
  - 761
  gunicorn.dirty.arbiter.DirtyArbiter.handle_stash_request:
  - 896
  - 897
  - 899
  - 901
  - 904
  - 905
  - 906
  - 792
  - 802
  - 803
  - 804
  - 805
  - 806
  - 807
  - 812
  - 814
  - 819
  - 820
  - 822
  - 827
  - 828
  - 834
  - 835
  - 838
  - 839
  - 841
  - 844
  - 845
  - 846
  - 849
  - 850
  - 854
  - 858
  - 859
  - 863
  - 864
  - 870
  - 871
  - 873
  - 874
  - 876
  - 882
  - 883
  - 884
  - 888
  - 890
  - 891
  - 892
  - 893
  - 895
  gunicorn.dirty.arbiter.DirtyArbiter.handle_status_request:
  - 672
  - 673
  - 677
  - 680
  - 681
  - 685
  - 657
  - 694
  - 695
  - 666
  - 667
  - 670
  gunicorn.dirty.arbiter.DirtyArbiter.init_signals:
  - 267
  - 268
  - 269
  - 271
  - 272
  - 273
  - 274
  - 275
  - 276
  - 277
  - 278
  gunicorn.dirty.arbiter.DirtyArbiter.kill_worker:
  - 1008
  - 1009
  - 1004
  - 1006
  gunicorn.dirty.arbiter.DirtyArbiter.manage_workers:
  - 928
  - 929
  - 909
  - 910
  - 916
  - 917
  - 918
  - 921
  - 924
  - 926
  - 927
  gunicorn.dirty.arbiter.DirtyArbiter.murder_workers:
  - 1059
  - 1060
  - 1062
  - 1064
  - 1048
  - 1049
  - 1052
  - 1054
  gunicorn.dirty.arbiter.DirtyArbiter.reap_workers:
  - 1088
  - 1067
  - 1070
  - 1071
  - 1075
  - 1076
  - 1077
  - 1078
  - 1079
  - 1082
  - 1083
  - 1085
  - 1086
  gunicorn.dirty.arbiter.DirtyArbiter.reload:
  - 1092
  - 1093
  - 1096
  - 1097
  - 1098
  - 1101
  - 1102
  - 1103
  gunicorn.dirty.arbiter.DirtyArbiter.route_request:
  - 446
  - 459
  - 460
  - 463
  - 464
  - 466
  - 467
  - 468
  - 470
  - 472
  - 473
  - 474
  - 478
  - 479
  - 482
  - 485
  - 489
  - 491
  - 493
  - 495
  gunicorn.dirty.arbiter.DirtyArbiter.run:
  - 257
  - 260
  - 264
  - 235
  - 236
  - 237
  - 240
  - 242
  - 243
  - 245
  - 251
  - 254
  gunicorn.dirty.arbiter.DirtyArbiter.spawn_worker:
  - 932
  - 947
  - 948
  - 949
  - 951
  - 954
  - 956
  - 957
  - 961
  - 965
  - 974
  - 975
  - 982
  - 984
  - 985
  - 990
  - 992
  - 993
  - 994
  - 996
  - 998
  - 999
  - 1000
  - 1001
  gunicorn.dirty.arbiter.DirtyArbiter.stop:
  - 1120
  - 1121
  - 1124
  - 1125
  - 1126
  - 1106
  - 1108
  - 1109
  - 1112
  - 1115
  - 1116
  - 1119
  gunicorn.dirty.client:
  - 649
  - 5
  - 646
  gunicorn.dirty.client.DirtyAsyncStreamIterator:
  - 493
  gunicorn.dirty.client.DirtyAsyncStreamIterator.__anext__:
  - 538
  - 531
  - 534
  - 535
  gunicorn.dirty.client.DirtyAsyncStreamIterator.__init__:
  - 524
  gunicorn.dirty.client.DirtyAsyncStreamIterator._read_next_chunk:
  - 565
  - 567
  - 570
  - 582
  - 583
  - 588
  - 589
  - 590
  - 595
  - 596
  - 608
  - 612
  - 614
  - 617
  - 618
  - 621
  - 626
  - 628
  - 632
  gunicorn.dirty.client.DirtyAsyncStreamIterator._start_request:
  - 546
  - 550
  - 551
  - 558
  - 541
  - 542
  - 543
  gunicorn.dirty.client.DirtyClient:
  - 32
  gunicorn.dirty.client.DirtyClient.__aenter__:
  - 334
  gunicorn.dirty.client.DirtyClient.__aexit__:
  - 338
  gunicorn.dirty.client.DirtyClient.__enter__:
  - 327
  gunicorn.dirty.client.DirtyClient.__exit__:
  - 331
  gunicorn.dirty.client.DirtyClient.__init__:
  - 41
  - 53
  gunicorn.dirty.client.DirtyClient._close_async:
  - 312
  - 308
  - 309
  - 311
  gunicorn.dirty.client.DirtyClient._close_socket:
  - 180
  - 181
  - 183
  gunicorn.dirty.client.DirtyClient._execute_locked:
  - 133
  - 102
  - 134
  - 104
  - 105
  - 108
  - 109
  - 119
  - 122
  - 125
  - 127
  gunicorn.dirty.client.DirtyClient._handle_response:
  - 167
  - 168
  - 170
  - 171
  - 172
  - 173
  - 174
  gunicorn.dirty.client.DirtyClient.close:
  - 189
  - 191
  gunicorn.dirty.client.DirtyClient.close_async:
  - 320
  - 319
  gunicorn.dirty.client.DirtyClient.connect:
  - 66
  - 70
  - 71
  - 72
  - 60
  gunicorn.dirty.client.DirtyClient.connect_async:
  - 208
  - 209
  - 204
  - 198
  gunicorn.dirty.client.DirtyClient.execute:
  - 81
  - 99
  gunicorn.dirty.client.DirtyClient.execute_async:
  - 224
  - 257
  - 260
  - 261
  - 266
  - 268
  - 242
  - 243
  - 274
  - 275
  - 246
  - 247
  gunicorn.dirty.client.DirtyClient.stream:
  - 139
  - 164
  gunicorn.dirty.client.DirtyClient.stream_async:
  - 280
  - 305
  gunicorn.dirty.client.DirtyStreamIterator:
  - 347
  gunicorn.dirty.client.DirtyStreamIterator.__init__:
  - 380
  gunicorn.dirty.client.DirtyStreamIterator.__next__:
  - 394
  - 387
  - 390
  - 391
  gunicorn.dirty.client.DirtyStreamIterator._read_next_chunk:
  - 418
  - 471
  - 482
  - 421
  - 422
  - 476
  - 458
  - 462
  - 464
  - 433
  - 467
  - 436
  - 468
  - 439
  - 440
  - 443
  - 444
  - 478
  gunicorn.dirty.client.DirtyStreamIterator._start_request:
  - 397
  - 399
  - 400
  - 403
  - 407
  - 408
  - 415
  gunicorn.dirty.client.close_dirty_client:
  - 744
  - 741
  - 742
  - 743
  gunicorn.dirty.client.close_dirty_client_async:
  - 752
  - 749
  - 751
  gunicorn.dirty.client.get_dirty_client:
  - 704
  - 705
  - 682
  - 702
  - 703
  gunicorn.dirty.client.get_dirty_client_async:
  - 736
  - 711
  - 732
  - 734
  - 735
  gunicorn.dirty.client.get_dirty_socket_path:
  - 672
  - 668
  - 669
  - 671
  gunicorn.dirty.client.set_dirty_socket_path:
  - 664
  - 658
  gunicorn.dirty.errors:
  - 5
  gunicorn.dirty.errors.DirtyAppError:
  - 113
  gunicorn.dirty.errors.DirtyAppError.__init__:
  - 121
  - 123
  - 117
  - 119
  gunicorn.dirty.errors.DirtyAppNotFoundError:
  - 130
  gunicorn.dirty.errors.DirtyAppNotFoundError.__init__:
  - 133
  gunicorn.dirty.errors.DirtyConnectionError:
  - 90
  gunicorn.dirty.errors.DirtyConnectionError.__init__:
  - 94
  gunicorn.dirty.errors.DirtyError:
  - 13
  gunicorn.dirty.errors.DirtyError.__init__:
  - 18
  gunicorn.dirty.errors.DirtyError.__str__:
  - 21
  gunicorn.dirty.errors.DirtyError.from_dict:
  - 35
  - 52
  - 53
  - 57
  - 58
  - 59
  - 60
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 69
  - 70
  - 71
  - 72
  - 73
  - 74
  - 75
  gunicorn.dirty.errors.DirtyError.to_dict:
  - 26
  gunicorn.dirty.errors.DirtyNoWorkersAvailableError:
  - 137
  gunicorn.dirty.errors.DirtyNoWorkersAvailableError.__init__:
  - 164
  - 166
  gunicorn.dirty.errors.DirtyProtocolError:
  - 171
  gunicorn.dirty.errors.DirtyProtocolError.__init__:
  - 175
  - 177
  - 178
  - 179
  - 180
  gunicorn.dirty.errors.DirtyTimeoutError:
  - 81
  gunicorn.dirty.errors.DirtyTimeoutError.__init__:
  - 85
  gunicorn.dirty.errors.DirtyWorkerError:
  - 99
  gunicorn.dirty.errors.DirtyWorkerError.__init__:
  - 105
  - 107
  - 103
  gunicorn.dirty.protocol:
  - 72
  - 92
  - 5
  gunicorn.dirty.protocol.BinaryProtocol:
  - 99
  gunicorn.dirty.protocol.BinaryProtocol._encode_from_dict:
  - 640
  - 577
  - 588
  - 589
  - 592
  - 594
  - 596
  - 597
  - 600
  - 601
  - 603
  - 604
  - 605
  - 606
  - 608
  - 609
  - 611
  - 613
  - 614
  - 616
  - 618
  - 619
  - 621
  - 623
  - 624
  - 625
  - 626
  - 628
  - 629
  - 630
  - 631
  - 632
  - 634
  - 635
  - 636
  - 637
  - 639
  gunicorn.dirty.protocol.BinaryProtocol._recv_exactly:
  - 493
  - 507
  - 508
  - 509
  - 510
  gunicorn.dirty.protocol.BinaryProtocol.decode_header:
  - 160
  - 132
  - 166
  - 172
  - 144
  - 150
  - 154
  gunicorn.dirty.protocol.BinaryProtocol.decode_message:
  - 389
  - 360
  - 374
  - 376
  - 383
  gunicorn.dirty.protocol.BinaryProtocol.encode_chunk:
  - 257
  - 268
  - 269
  - 270
  gunicorn.dirty.protocol.BinaryProtocol.encode_end:
  - 275
  - 285
  gunicorn.dirty.protocol.BinaryProtocol.encode_error:
  - 226
  - 238
  - 239
  - 240
  - 244
  - 245
  - 250
  - 251
  - 252
  gunicorn.dirty.protocol.BinaryProtocol.encode_header:
  - 116
  - 127
  gunicorn.dirty.protocol.BinaryProtocol.encode_manage:
  - 320
  - 305
  - 322
  - 321
  gunicorn.dirty.protocol.BinaryProtocol.encode_request:
  - 198
  - 201
  - 202
  - 203
  - 182
  gunicorn.dirty.protocol.BinaryProtocol.encode_response:
  - 208
  - 219
  - 220
  - 221
  gunicorn.dirty.protocol.BinaryProtocol.encode_stash:
  - 353
  - 354
  - 355
  - 328
  - 346
  - 348
  - 350
  gunicorn.dirty.protocol.BinaryProtocol.encode_status:
  - 290
  - 300
  gunicorn.dirty.protocol.BinaryProtocol.read_message:
  - 521
  - 555
  - 534
  - 535
  - 538
  - 539
  - 541
  gunicorn.dirty.protocol.BinaryProtocol.read_message_async:
  - 449
  - 424
  - 426
  - 463
  - 435
  - 438
  - 440
  - 409
  gunicorn.dirty.protocol.BinaryProtocol.write_message:
  - 561
  - 572
  - 573
  gunicorn.dirty.protocol.BinaryProtocol.write_message_async:
  - 483
  - 484
  - 485
  - 470
  gunicorn.dirty.protocol.make_chunk_message:
  - 729
  gunicorn.dirty.protocol.make_end_message:
  - 747
  gunicorn.dirty.protocol.make_error_response:
  - 710
  - 711
  - 712
  - 716
  - 717
  - 699
  gunicorn.dirty.protocol.make_manage_message:
  - 794
  gunicorn.dirty.protocol.make_request:
  - 657
  - 675
  gunicorn.dirty.protocol.make_response:
  - 681
  gunicorn.dirty.protocol.make_stash_message:
  - 784
  - 786
  - 764
  - 788
  gunicorn.dirty.stash:
  - 412
  - 5
  gunicorn.dirty.stash.StashClient:
  - 91
  gunicorn.dirty.stash.StashClient.__exit__:
  - 331
  gunicorn.dirty.stash.StashClient.__init__:
  - 98
  - 108
  gunicorn.dirty.stash.StashClient._close:
  - 129
  - 130
  - 132
  gunicorn.dirty.stash.StashClient._connect:
  - 115
  - 117
  - 121
  - 122
  - 123
  gunicorn.dirty.stash.StashClient._execute:
  - 162
  - 163
  - 165
  - 166
  - 167
  - 168
  - 169
  - 138
  - 170
  - 171
  - 173
  - 175
  - 182
  - 183
  - 152
  - 153
  - 155
  - 156
  gunicorn.dirty.stash.StashClient._get_request_id:
  - 112
  - 111
  gunicorn.dirty.stash.StashClient.clear:
  - 248
  - 254
  gunicorn.dirty.stash.StashClient.close:
  - 323
  - 325
  gunicorn.dirty.stash.StashClient.delete:
  - 232
  - 222
  gunicorn.dirty.stash.StashClient.delete_table:
  - 299
  - 293
  gunicorn.dirty.stash.StashClient.ensure:
  - 277
  - 269
  gunicorn.dirty.stash.StashClient.exists:
  - 280
  - 290
  gunicorn.dirty.stash.StashClient.get:
  - 217
  - 205
  gunicorn.dirty.stash.StashClient.info:
  - 257
  - 266
  gunicorn.dirty.stash.StashClient.keys:
  - 235
  - 245
  gunicorn.dirty.stash.StashClient.put:
  - 192
  - 202
  gunicorn.dirty.stash.StashClient.table:
  - 320
  - 311
  gunicorn.dirty.stash.StashClient.tables:
  - 308
  - 302
  gunicorn.dirty.stash.StashError:
  - 70
  gunicorn.dirty.stash.StashKeyNotFoundError:
  - 82
  gunicorn.dirty.stash.StashKeyNotFoundError.__init__:
  - 87
  gunicorn.dirty.stash.StashTable:
  - 335
  gunicorn.dirty.stash.StashTable.__contains__:
  - 375
  gunicorn.dirty.stash.StashTable.__delitem__:
  - 371
  gunicorn.dirty.stash.StashTable.__getitem__:
  - 360
  - 361
  - 363
  gunicorn.dirty.stash.StashTable.__iter__:
  - 378
  gunicorn.dirty.stash.StashTable.__len__:
  - 381
  - 382
  gunicorn.dirty.stash.StashTable.__setitem__:
  - 368
  gunicorn.dirty.stash.StashTable.clear:
  - 393
  - 394
  gunicorn.dirty.stash.StashTable.get:
  - 385
  - 386
  gunicorn.dirty.stash.StashTable.items:
  - 397
  - 398
  - 399
  gunicorn.dirty.stash.StashTable.keys:
  - 389
  - 390
  gunicorn.dirty.stash.StashTable.name:
  - 356
  gunicorn.dirty.stash.StashTable.values:
  - 402
  - 403
  - 404
  gunicorn.dirty.stash.StashTableNotFoundError:
  - 74
  gunicorn.dirty.stash.StashTableNotFoundError.__init__:
  - 78
  gunicorn.dirty.stash._get_client:
  - 440
  - 441
  - 442
  - 443
  - 444
  gunicorn.dirty.stash.clear:
  - 472
  - 473
  gunicorn.dirty.stash.delete:
  - 462
  - 463
  gunicorn.dirty.stash.delete_table:
  - 492
  - 493
  gunicorn.dirty.stash.ensure:
  - 482
  - 483
  gunicorn.dirty.stash.exists:
  - 488
  - 487
  gunicorn.dirty.stash.get:
  - 457
  - 458
  gunicorn.dirty.stash.get_stash_socket_path:
  - 425
  - 427
  - 429
  - 430
  gunicorn.dirty.stash.info:
  - 477
  - 478
  gunicorn.dirty.stash.keys:
  - 467
  - 468
  gunicorn.dirty.stash.put:
  - 452
  - 453
  gunicorn.dirty.stash.set_stash_socket_path:
  - 419
  gunicorn.dirty.stash.table:
  - 502
  - 503
  gunicorn.dirty.stash.tables:
  - 497
  - 498
  gunicorn.dirty.tlv:
  - 5
  gunicorn.dirty.tlv.TLVEncoder:
  - 45
  gunicorn.dirty.tlv.TLVEncoder.decode:
  - 129
  - 259
  - 262
  - 268
  - 269
  - 142
  - 270
  - 274
  - 151
  - 154
  - 155
  - 163
  - 164
  - 169
  - 172
  - 173
  - 178
  - 181
  - 182
  - 187
  - 190
  - 195
  - 204
  - 205
  - 210
  - 213
  - 218
  - 225
  - 233
  - 234
  - 239
  - 242
  - 248
  - 249
  - 250
  - 253
  - 254
  gunicorn.dirty.tlv.TLVEncoder.decode_full:
  - 297
  - 298
  - 285
  gunicorn.dirty.tlv.TLVEncoder.encode:
  - 54
  - 67
  - 68
  - 70
  - 72
  - 74
  - 75
  - 77
  - 78
  - 80
  - 81
  - 86
  - 88
  - 89
  - 90
  - 95
  - 97
  - 98
  - 104
  - 105
  - 106
  - 108
  - 109
  - 115
  - 117
  - 118
  - 119
  - 120
  - 121
  gunicorn.dirty.worker:
  - 5
  gunicorn.dirty.worker.DirtyWorker:
  - 104
  - 97
  - 105
  gunicorn.dirty.worker.DirtyWorker.__init__:
  - 129
  - 108
  gunicorn.dirty.worker.DirtyWorker._cleanup:
  - 512
  - 513
  - 515
  - 519
  - 525
  - 526
  - 530
  - 503
  - 505
  - 506
  - 510
  gunicorn.dirty.worker.DirtyWorker._heartbeat_loop:
  - 283
  - 285
  - 286
  gunicorn.dirty.worker.DirtyWorker._run_async:
  - 256
  - 262
  - 264
  - 268
  - 272
  - 276
  - 278
  - 250
  - 252
  - 253
  gunicorn.dirty.worker.DirtyWorker._shutdown:
  - 208
  - 206
  - 207
  gunicorn.dirty.worker.DirtyWorker._signal_handler:
  - 196
  - 197
  - 198
  - 202
  - 203
  gunicorn.dirty.worker.DirtyWorker._stream_async_generator:
  - 448
  - 418
  - 429
  - 430
  - 433
  - 435
  - 436
  - 440
  - 441
  - 442
  - 444
  - 446
  gunicorn.dirty.worker.DirtyWorker._stream_sync_generator:
  - 389
  - 392
  - 393
  - 396
  - 397
  - 400
  - 370
  - 402
  - 403
  - 407
  - 408
  - 409
  - 411
  - 380
  - 413
  - 415
  gunicorn.dirty.worker.DirtyWorker._stream_sync_generator._get_next:
  - 384
  gunicorn.dirty.worker.DirtyWorker.execute:
  - 480
  - 451
  - 484
  - 483
  - 486
  - 493
  - 472
  gunicorn.dirty.worker.DirtyWorker.execute.<lambda1>:
  - 486
  gunicorn.dirty.worker.DirtyWorker.handle_connection:
  - 289
  - 294
  - 299
  - 305
  - 307
  - 309
  - 311
  gunicorn.dirty.worker.DirtyWorker.handle_request:
  - 316
  - 327
  - 328
  - 330
  - 331
  - 333
  - 335
  - 338
  - 339
  - 340
  - 341
  - 344
  - 347
  - 350
  - 351
  - 352
  - 353
  - 356
  - 357
  - 359
  - 360
  - 362
  - 364
  - 367
  gunicorn.dirty.worker.DirtyWorker.init_process:
  - 161
  - 162
  - 165
  - 168
  - 171
  - 172
  - 143
  - 176
  - 150
  - 151
  - 154
  - 158
  gunicorn.dirty.worker.DirtyWorker.init_signals:
  - 193
  - 179
  - 181
  - 182
  - 185
  - 186
  - 187
  - 190
  gunicorn.dirty.worker.DirtyWorker.load_apps:
  - 224
  - 211
  - 213
  - 214
  - 215
  - 217
  - 218
  - 220
  gunicorn.dirty.worker.DirtyWorker.notify:
  - 139
  - 140
  gunicorn.dirty.worker.DirtyWorker.run:
  - 228
  - 234
  - 238
  - 241
  - 242
  - 243
  - 245
  - 247
  gunicorn.errors.AppImportError:
  - 28
  gunicorn.errors.ConfigError:
  - 24
  gunicorn.glogging.Logger.__init__:
  - 184
  - 193
  - 186
  - 191
  gunicorn.glogging.Logger._get_gunicorn_handler:
  - 405
  - 406
  gunicorn.glogging.Logger._get_user:
  - 461
  - 462
  - 463
  - 464
  - 468
  - 470
  - 472
  gunicorn.glogging.Logger._set_handler:
  - 416
  - 417
  - 419
  - 420
  - 423
  - 429
  - 431
  - 411
  - 412
  - 413
  - 415
  gunicorn.glogging.Logger._set_syslog_handler:
  - 449
  - 452
  - 455
  - 457
  - 435
  - 440
  - 444
  gunicorn.glogging.Logger.access:
  - 357
  - 358
  - 362
  - 364
  - 345
  - 349
  gunicorn.glogging.Logger.atoms:
  - 291
  - 294
  - 295
  - 297
  - 299
  - 300
  - 305
  - 306
  - 307
  - 308
  - 309
  - 310
  - 311
  - 312
  - 315
  - 317
  - 321
  - 326
  - 327
  - 329
  - 332
  - 333
  - 336
  - 339
  - 340
  gunicorn.glogging.Logger.close_on_exec:
  - 394
  - 395
  - 396
  - 397
  - 399
  - 400
  - 402
  gunicorn.glogging.Logger.critical:
  - 268
  gunicorn.glogging.Logger.debug:
  - 280
  gunicorn.glogging.Logger.error:
  - 271
  gunicorn.glogging.Logger.exception:
  - 283
  gunicorn.glogging.Logger.info:
  - 277
  gunicorn.glogging.Logger.log:
  - 288
  - 286
  - 287
  gunicorn.glogging.Logger.now:
  - 368
  - 367
  gunicorn.glogging.Logger.reopen_files:
  - 384
  - 385
  - 387
  - 388
  - 389
  - 391
  - 371
  - 372
  - 373
  - 376
  - 377
  - 378
  - 379
  - 380
  - 382
  - 383
  gunicorn.glogging.Logger.setup:
  - 256
  - 257
  - 258
  - 260
  - 261
  - 196
  - 197
  - 198
  - 201
  - 202
  - 203
  - 205
  - 206
  - 207
  - 209
  - 210
  - 213
  - 214
  - 216
  - 220
  - 221
  - 224
  - 225
  - 229
  - 230
  - 231
  - 233
  - 241
  - 242
  - 243
  - 245
  - 246
  - 247
  gunicorn.glogging.Logger.warning:
  - 274
  gunicorn.glogging.SafeAtoms.__getitem__:
  - 106
  - 107
  - 108
  - 109
  - 112
  - 113
  gunicorn.glogging.SafeAtoms.__init__:
  - 98
  - 99
  - 100
  - 101
  gunicorn.glogging.loggers:
  - 89
  - 91
  - 92
  gunicorn.glogging.parse_syslog_address:
  - 129
  - 132
  - 134
  - 135
  - 137
  - 138
  - 143
  - 144
  - 145
  - 146
  - 147
  - 150
  - 152
  - 153
  - 154
  - 155
  - 157
  - 122
  - 126
  - 127
  gunicorn.http.body.Body.__init__:
  - 186
  gunicorn.http.body.Body.__next__:
  - 192
  - 193
  gunicorn.http.body.Body.getsize:
  - 200
  - 202
  - 204
  gunicorn.http.body.Body.read:
  - 224
  - 226
  - 228
  - 229
  - 209
  - 210
  - 213
  - 214
  - 216
  - 217
  - 220
  - 221
  - 222
  gunicorn.http.body.Body.readline:
  - 233
  - 234
  - 237
  - 238
  - 242
  - 243
  - 244
  - 245
  - 246
  - 249
  - 250
  - 251
  - 252
  - 255
  gunicorn.http.body.Body.readlines:
  - 259
  - 261
  - 262
  - 263
  - 267
  gunicorn.http.body.ChunkedReader.__init__:
  - 16
  - 15
  gunicorn.http.body.ChunkedReader.get_data:
  - 112
  - 109
  - 110
  gunicorn.http.body.ChunkedReader.parse_chunk_size:
  - 96
  - 98
  - 100
  - 102
  - 78
  - 79
  - 80
  - 82
  - 84
  - 85
  - 87
  - 91
  - 92
  - 93
  - 94
  gunicorn.http.body.ChunkedReader.parse_chunked:
  - 65
  - 68
  - 69
  - 70
  - 73
  - 75
  - 57
  - 59
  - 60
  - 61
  - 62
  - 63
  gunicorn.http.body.ChunkedReader.parse_trailers:
  - 41
  - 42
  - 44
  - 45
  - 47
  - 48
  - 49
  - 50
  - 51
  - 53
  - 54
  gunicorn.http.body.ChunkedReader.read:
  - 34
  - 36
  - 37
  - 19
  - 21
  - 23
  - 26
  - 27
  - 29
  gunicorn.http.body.EOFReader.__init__:
  - 148
  gunicorn.http.body.EOFReader.read:
  - 160
  - 162
  - 163
  - 166
  - 168
  - 169
  - 171
  - 173
  - 176
  - 178
  - 179
  - 152
  - 154
  - 156
  - 159
  gunicorn.http.body.LengthReader.read:
  - 130
  - 131
  - 133
  - 134
  - 136
  - 138
  - 140
  - 121
  - 124
  - 125
  - 127
  gunicorn.http.get_parser:
  - 33
  - 10
  - 22
  - 24
  - 27
  - 28
  - 30
  gunicorn.http.message:
  - 56
  - 58
  - 59
  - 55
  gunicorn.http.message.Message.__init__:
  - 98
  - 102
  - 110
  - 111
  - 112
  gunicorn.http.message.Message.parse_headers:
  - 131
  - 135
  - 136
  - 137
  - 144
  - 148
  - 149
  - 150
  - 152
  - 153
  - 154
  - 155
  - 162
  - 164
  - 167
  - 169
  - 171
  - 172
  - 173
  - 176
  - 177
  - 179
  - 182
  - 185
  - 188
  - 189
  - 200
  - 203
  - 204
  - 215
  - 216
  - 219
  - 222
  - 230
  - 125
  gunicorn.http.message.Message.set_body_reader:
  - 256
  - 258
  - 260
  - 262
  - 266
  - 270
  - 273
  - 277
  - 278
  - 280
  - 281
  - 287
  - 290
  - 292
  - 238
  - 239
  - 240
  - 243
  - 246
  - 247
  - 248
  - 250
  - 253
  gunicorn.http.message.Message.should_close:
  - 295
  - 297
  - 298
  - 299
  - 300
  - 302
  gunicorn.http.message.PPCommand:
  - 29
  gunicorn.http.message.PPFamily:
  - 35
  gunicorn.http.message.PPProtocol:
  - 43
  gunicorn.http.message.Request.__init__:
  - 324
  - 318
  gunicorn.http.message.Request._handle_proxy_protocol:
  - 417
  - 418
  - 419
  - 422
  - 423
  - 424
  - 408
  - 413
  - 414
  gunicorn.http.message.Request._parse_proxy_protocol_v1:
  - 437
  - 442
  - 444
  - 445
  - 447
  - 448
  - 449
  - 451
  - 453
  - 462
  - 464
  - 466
  - 467
  - 470
  - 472
  - 473
  - 478
  - 479
  - 483
  gunicorn.http.message.Request._parse_proxy_protocol_v2:
  - 513
  - 518
  - 523
  - 524
  - 527
  - 535
  - 542
  - 545
  - 547
  - 548
  - 550
  - 551
  - 552
  - 553
  - 556
  - 557
  - 559
  - 560
  - 561
  - 562
  - 565
  - 574
  - 588
  - 498
  - 503
  - 504
  - 509
  gunicorn.http.message.Request.get_data:
  - 328
  - 329
  - 332
  - 327
  gunicorn.http.message.Request.parse:
  - 353
  - 356
  - 357
  - 358
  - 359
  - 364
  - 365
  - 335
  - 336
  - 368
  - 340
  - 341
  - 344
  - 346
  - 349
  gunicorn.http.message.Request.parse_request_line:
  - 640
  - 610
  - 611
  - 642
  - 591
  - 592
  - 624
  - 628
  - 600
  - 601
  - 603
  - 636
  - 637
  - 606
  - 639
  gunicorn.http.message.Request.proxy_protocol_access_check:
  - 432
  - 433
  - 430
  - 431
  gunicorn.http.message.Request.read_bytes:
  - 402
  - 403
  - 404
  - 405
  gunicorn.http.message.Request.read_into:
  - 374
  - 375
  - 376
  - 377
  - 380
  gunicorn.http.message.Request.read_line:
  - 384
  - 387
  - 388
  - 390
  - 393
  - 395
  - 396
  - 399
  - 383
  gunicorn.http.message.Request.set_body_reader:
  - 648
  - 646
  - 647
  gunicorn.http.message._ip_in_allow_list:
  - 70
  - 73
  - 76
  - 77
  - 63
  gunicorn.http.parser.Parser.__init__:
  - 17
  - 18
  - 20
  gunicorn.http.parser.Parser.__next__:
  - 48
  - 57
  - 56
  - 52
  gunicorn.http.parser.Parser.finish_body:
  - 41
  - 39
  - 37
  - 31
  gunicorn.http.unreader.IterUnreader.__init__:
  - 70
  - 71
  gunicorn.http.unreader.IterUnreader.chunk:
  - 74
  - 77
  gunicorn.http.unreader.SocketUnreader.__init__:
  - 60
  gunicorn.http.unreader.SocketUnreader.chunk:
  - 65
  gunicorn.http.unreader.Unreader.__init__:
  - 14
  gunicorn.http.unreader.Unreader.read:
  - 20
  - 23
  - 24
  - 26
  - 29
  - 31
  - 32
  - 33
  - 35
  - 36
  - 39
  - 40
  - 41
  - 42
  - 43
  - 45
  - 46
  - 47
  - 48
  gunicorn.http.unreader.Unreader.unread:
  - 52
  - 53
  - 54
  - 55
  gunicorn.http.wsgi:
  - 24
  - 22
  gunicorn.http.wsgi.FileWrapper.__getitem__:
  - 36
  - 37
  gunicorn.http.wsgi.FileWrapper.__init__:
  - 32
  gunicorn.http.wsgi.Response.close:
  - 459
  - 460
  - 461
  - 462
  gunicorn.http.wsgi.Response.default_headers:
  - 366
  - 368
  - 377
  - 380
  - 381
  gunicorn.http.wsgi.Response.is_chunked:
  - 353
  - 355
  - 358
  - 351
  gunicorn.http.wsgi.Response.process_headers:
  - 320
  - 323
  - 326
  - 330
  - 331
  - 332
  - 333
  - 334
  - 335
  - 337
  - 339
  - 340
  - 341
  - 345
  - 316
  - 317
  gunicorn.http.wsgi.Response.send_headers:
  - 385
  - 387
  - 388
  - 390
  - 391
  gunicorn.http.wsgi.Response.sendfile:
  - 449
  - 421
  - 424
  - 427
  - 429
  - 430
  - 431
  - 438
  - 440
  - 442
  - 443
  - 444
  - 446
  - 447
  gunicorn.http.wsgi.Response.should_close:
  - 281
  - 283
  - 285
  - 287
  gunicorn.http.wsgi.Response.start_response:
  - 292
  - 294
  - 295
  - 298
  - 307
  - 311
  - 312
  gunicorn.http.wsgi.Response.write:
  - 395
  - 396
  - 398
  - 400
  - 401
  - 405
  - 406
  - 411
  - 415
  gunicorn.http.wsgi.Response.write_file:
  - 456
  - 454
  - 455
  gunicorn.http.wsgi.WSGIErrorsWrapper.__init__:
  - 48
  - 52
  - 53
  - 56
  - 57
  - 58
  gunicorn.http.wsgi.WSGIErrorsWrapper.write:
  - 65
  - 66
  - 61
  - 63
  gunicorn.http.wsgi._make_early_hints_callback:
  - 111
  gunicorn.http.wsgi._make_early_hints_callback.send_early_hints:
  - 132
  - 139
  - 143
  - 148
  - 149
  - 150
  - 151
  - 152
  - 153
  - 156
  gunicorn.http.wsgi.base_environ:
  - 71
  gunicorn.http.wsgi.create:
  - 162
  - 165
  - 169
  - 171
  - 172
  - 177
  - 178
  - 180
  - 182
  - 185
  - 191
  - 192
  - 203
  - 205
  - 206
  - 209
  - 215
  - 216
  - 217
  - 219
  - 220
  - 221
  - 222
  - 223
  - 224
  - 225
  - 227
  - 231
  - 233
  - 237
  - 238
  - 242
  - 243
  - 248
  - 251
  - 254
  gunicorn.http.wsgi.default_environ:
  - 83
  - 84
  gunicorn.http.wsgi.proxy_environ:
  - 104
  - 98
  - 106
  gunicorn.http2:
  - 6
  gunicorn.http2.async_connection:
  - 6
  gunicorn.http2.async_connection.AsyncHTTP2Connection:
  - 49
  gunicorn.http2.async_connection.AsyncHTTP2Connection.__init__:
  - 70
  - 81
  - 90
  - 59
  - 94
  gunicorn.http2.async_connection.AsyncHTTP2Connection.__repr__:
  - 583
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_connection_terminated:
  - 293
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_data_received:
  - 256
  - 259
  - 261
  - 267
  - 245
  - 249
  - 250
  - 253
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_event:
  - 224
  - 225
  - 195
  - 227
  - 228
  - 203
  - 204
  - 206
  - 207
  - 209
  - 210
  - 212
  - 213
  - 215
  - 218
  - 219
  - 221
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_priority_updated:
  - 313
  - 314
  - 315
  - 308
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_request_received:
  - 233
  - 242
  - 238
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_ended:
  - 274
  - 282
  - 276
  - 278
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_stream_reset:
  - 289
  - 290
  - 285
  - 287
  gunicorn.http2.async_connection.AsyncHTTP2Connection._handle_trailers_received:
  - 297
  - 299
  - 301
  - 304
  - 305
  gunicorn.http2.async_connection.AsyncHTTP2Connection._send_pending_data:
  - 561
  - 562
  - 563
  - 565
  - 566
  gunicorn.http2.async_connection.AsyncHTTP2Connection._wait_for_flow_control_window:
  - 416
  - 418
  - 421
  - 394
  - 431
  - 400
  - 401
  - 402
  - 407
  - 408
  - 411
  - 412
  - 414
  - 415
  gunicorn.http2.async_connection.AsyncHTTP2Connection.cleanup_stream:
  - 577
  - 578
  gunicorn.http2.async_connection.AsyncHTTP2Connection.close:
  - 545
  - 546
  - 549
  - 550
  - 555
  - 556
  - 539
  - 540
  gunicorn.http2.async_connection.AsyncHTTP2Connection.initiate_connection:
  - 102
  - 107
  - 111
  - 118
  - 119
  gunicorn.http2.async_connection.AsyncHTTP2Connection.is_closed:
  - 573
  gunicorn.http2.async_connection.AsyncHTTP2Connection.receive_data:
  - 136
  - 137
  - 138
  - 142
  - 146
  - 154
  - 157
  - 161
  - 167
  - 168
  - 169
  - 171
  - 175
  - 179
  - 184
  - 185
  - 186
  - 187
  - 190
  - 123
  gunicorn.http2.async_connection.AsyncHTTP2Connection.reset_stream:
  - 530
  - 531
  - 532
  - 533
  - 535
  - 536
  gunicorn.http2.async_connection.AsyncHTTP2Connection.send_data:
  - 451
  - 452
  - 454
  - 456
  - 457
  - 458
  - 460
  - 464
  - 434
  - 466
  - 467
  - 469
  - 472
  - 473
  - 444
  - 445
  gunicorn.http2.async_connection.AsyncHTTP2Connection.send_error:
  - 521
  - 522
  - 523
  - 524
  - 525
  - 527
  gunicorn.http2.async_connection.AsyncHTTP2Connection.send_informational:
  - 322
  - 336
  - 339
  - 340
  - 344
  - 345
  - 347
  - 350
  - 351
  gunicorn.http2.async_connection.AsyncHTTP2Connection.send_response:
  - 384
  - 385
  - 354
  - 389
  - 390
  - 365
  - 366
  - 371
  - 372
  - 373
  - 375
  - 379
  - 380
  - 381
  gunicorn.http2.async_connection.AsyncHTTP2Connection.send_trailers:
  - 512
  - 516
  - 517
  - 492
  - 493
  - 496
  - 502
  - 503
  - 504
  - 506
  - 477
  - 510
  - 511
  gunicorn.http2.async_connection._import_h2:
  - 32
  - 35
  gunicorn.http2.connection:
  - 6
  gunicorn.http2.connection.HTTP2ServerConnection:
  - 48
  gunicorn.http2.connection.HTTP2ServerConnection.__init__:
  - 69
  - 88
  - 59
  - 92
  - 95
  gunicorn.http2.connection.HTTP2ServerConnection.__repr__:
  - 653
  gunicorn.http2.connection.HTTP2ServerConnection._handle_connection_terminated:
  - 312
  gunicorn.http2.connection.HTTP2ServerConnection._handle_data_received:
  - 256
  - 260
  - 263
  - 266
  - 268
  - 270
  - 273
  - 244
  - 255
  gunicorn.http2.connection.HTTP2ServerConnection._handle_event:
  - 197
  - 198
  - 200
  - 201
  - 203
  - 204
  - 206
  - 207
  - 209
  - 212
  - 213
  - 215
  - 221
  - 218
  - 219
  - 189
  - 222
  gunicorn.http2.connection.HTTP2ServerConnection._handle_priority_updated:
  - 346
  - 347
  - 348
  - 341
  gunicorn.http2.connection.HTTP2ServerConnection._handle_request_received:
  - 241
  - 227
  - 236
  gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_ended:
  - 296
  - 289
  - 278
  - 287
  gunicorn.http2.connection.HTTP2ServerConnection._handle_stream_reset:
  - 305
  - 299
  - 308
  - 307
  gunicorn.http2.connection.HTTP2ServerConnection._handle_trailers_received:
  - 321
  - 330
  - 332
  - 335
  - 338
  gunicorn.http2.connection.HTTP2ServerConnection._send_pending_data:
  - 632
  - 628
  - 629
  - 630
  gunicorn.http2.connection.HTTP2ServerConnection._wait_for_flow_control_window:
  - 448
  - 449
  - 450
  - 484
  - 454
  - 455
  - 472
  - 457
  - 460
  - 431
  - 464
  - 467
  - 468
  - 469
  - 440
  - 441
  gunicorn.http2.connection.HTTP2ServerConnection.cleanup_stream:
  - 648
  - 643
  gunicorn.http2.connection.HTTP2ServerConnection.close:
  - 612
  - 617
  - 619
  - 622
  - 623
  - 606
  gunicorn.http2.connection.HTTP2ServerConnection.initiate_connection:
  - 102
  - 107
  - 111
  - 118
  - 119
  gunicorn.http2.connection.HTTP2ServerConnection.is_closed:
  - 639
  gunicorn.http2.connection.HTTP2ServerConnection.receive_data:
  - 161
  - 162
  - 163
  - 165
  - 134
  - 136
  - 169
  - 140
  - 155
  - 173
  - 178
  - 179
  - 148
  - 180
  - 181
  - 151
  - 184
  - 123
  gunicorn.http2.connection.HTTP2ServerConnection.reset_stream:
  - 592
  - 598
  - 599
  - 600
  - 602
  - 603
  gunicorn.http2.connection.HTTP2ServerConnection.send_data:
  - 512
  - 513
  - 515
  - 519
  - 489
  - 521
  - 522
  - 524
  - 528
  - 529
  - 499
  - 500
  - 506
  - 507
  - 509
  - 511
  gunicorn.http2.connection.HTTP2ServerConnection.send_error:
  - 577
  - 584
  - 585
  - 586
  - 587
  - 589
  gunicorn.http2.connection.HTTP2ServerConnection.send_informational:
  - 384
  - 355
  - 369
  - 372
  - 373
  - 377
  - 378
  - 380
  - 383
  gunicorn.http2.connection.HTTP2ServerConnection.send_response:
  - 416
  - 417
  - 418
  - 387
  - 421
  - 422
  - 426
  - 427
  - 401
  - 402
  - 407
  - 408
  - 410
  - 412
  gunicorn.http2.connection.HTTP2ServerConnection.send_trailers:
  - 548
  - 549
  - 552
  - 558
  - 559
  - 560
  - 562
  - 533
  - 566
  - 567
  - 568
  - 572
  - 573
  gunicorn.http2.connection._import_h2:
  - 34
  - 31
  gunicorn.http2.errors:
  - 6
  gunicorn.http2.errors.HTTP2Cancel:
  - 87
  gunicorn.http2.errors.HTTP2CompressionError:
  - 93
  gunicorn.http2.errors.HTTP2ConfigurationError:
  - 138
  gunicorn.http2.errors.HTTP2ConnectError:
  - 99
  gunicorn.http2.errors.HTTP2ConnectionError:
  - 134
  gunicorn.http2.errors.HTTP2EnhanceYourCalm:
  - 105
  gunicorn.http2.errors.HTTP2Error:
  - 33
  gunicorn.http2.errors.HTTP2Error.__init__:
  - 41
  - 39
  gunicorn.http2.errors.HTTP2ErrorCode:
  - 14
  gunicorn.http2.errors.HTTP2FlowControlError:
  - 57
  gunicorn.http2.errors.HTTP2FrameSizeError:
  - 75
  gunicorn.http2.errors.HTTP2InadequateSecurity:
  - 111
  gunicorn.http2.errors.HTTP2InternalError:
  - 51
  gunicorn.http2.errors.HTTP2NotAvailable:
  - 142
  gunicorn.http2.errors.HTTP2NotAvailable.__init__:
  - 146
  gunicorn.http2.errors.HTTP2ProtocolError:
  - 45
  gunicorn.http2.errors.HTTP2RefusedStream:
  - 81
  gunicorn.http2.errors.HTTP2RequiresHTTP11:
  - 117
  gunicorn.http2.errors.HTTP2SettingsTimeout:
  - 63
  gunicorn.http2.errors.HTTP2StreamClosed:
  - 69
  gunicorn.http2.errors.HTTP2StreamError:
  - 123
  gunicorn.http2.errors.HTTP2StreamError.__init__:
  - 127
  gunicorn.http2.get_async_http2_connection_class:
  - 73
  - 68
  gunicorn.http2.get_h2_version:
  - 49
  - 50
  - 44
  gunicorn.http2.get_http2_connection_class:
  - 60
  - 55
  gunicorn.http2.is_http2_available:
  - 32
  - 33
  - 27
  - 20
  gunicorn.http2.request:
  - 6
  gunicorn.http2.request.HTTP2Body:
  - 18
  gunicorn.http2.request.HTTP2Body.__init__:
  - 25
  - 30
  - 31
  gunicorn.http2.request.HTTP2Body.__iter__:
  - 72
  - 71
  gunicorn.http2.request.HTTP2Body.__len__:
  - 75
  gunicorn.http2.request.HTTP2Body.close:
  - 80
  - 79
  gunicorn.http2.request.HTTP2Body.read:
  - 34
  - 43
  - 42
  - 44
  gunicorn.http2.request.HTTP2Body.readline:
  - 56
  - 57
  - 55
  - 47
  gunicorn.http2.request.HTTP2Body.readlines:
  - 60
  - 68
  gunicorn.http2.request.HTTP2Request:
  - 84
  gunicorn.http2.request.HTTP2Request.__init__:
  - 132
  - 134
  - 138
  - 108
  - 109
  - 110
  - 111
  - 112
  - 140
  - 144
  - 146
  - 117
  - 151
  - 152
  - 92
  gunicorn.http2.request.HTTP2Request.content_length:
  - 208
  - 209
  - 203
  - 211
  gunicorn.http2.request.HTTP2Request.content_type:
  - 218
  - 223
  gunicorn.http2.request.HTTP2Request.force_close:
  - 169
  gunicorn.http2.request.HTTP2Request.get_header:
  - 187
  - 196
  - 197
  - 195
  gunicorn.http2.request.HTTP2Request.should_close:
  - 173
  - 181
  gunicorn.http2.stream:
  - 6
  gunicorn.http2.stream.HTTP2Stream:
  - 31
  gunicorn.http2.stream.HTTP2Stream.__init__:
  - 52
  - 38
  gunicorn.http2.stream.HTTP2Stream._half_close_local:
  - 256
  - 258
  - 255
  gunicorn.http2.stream.HTTP2Stream._half_close_remote:
  - 267
  - 268
  - 270
  gunicorn.http2.stream.HTTP2Stream.can_receive:
  - 86
  gunicorn.http2.stream.HTTP2Stream.can_send:
  - 94
  gunicorn.http2.stream.HTTP2Stream.close:
  - 234
  gunicorn.http2.stream.HTTP2Stream.get_pseudo_headers:
  - 295
  - 294
  - 287
  gunicorn.http2.stream.HTTP2Stream.get_regular_headers:
  - 300
  - 308
  gunicorn.http2.stream.HTTP2Stream.get_request_body:
  - 284
  - 279
  gunicorn.http2.stream.HTTP2Stream.is_client_stream:
  - 76
  gunicorn.http2.stream.HTTP2Stream.is_server_stream:
  - 81
  gunicorn.http2.stream.HTTP2Stream.receive_data:
  - 134
  - 140
  - 142
  - 143
  - 125
  gunicorn.http2.stream.HTTP2Stream.receive_headers:
  - 101
  - 110
  - 112
  - 118
  - 120
  - 121
  gunicorn.http2.stream.HTTP2Stream.receive_trailers:
  - 152
  - 147
  - 159
  gunicorn.http2.stream.HTTP2Stream.reset:
  - 224
  gunicorn.http2.stream.HTTP2Stream.send_data:
  - 201
  - 186
  - 195
  - 202
  gunicorn.http2.stream.HTTP2Stream.send_headers:
  - 163
  - 172
  - 181
  - 182
  gunicorn.http2.stream.HTTP2Stream.send_trailers:
  - 220
  - 214
  - 206
  gunicorn.http2.stream.HTTP2Stream.update_priority:
  - 240
  - 247
  - 248
  - 249
  - 251
  gunicorn.http2.stream.StreamState:
  - 19
  - 21
  - 22
  - 23
  - 24
  - 25
  - 26
  - 27
  gunicorn.instrument.statsd:
  - 5
  gunicorn.instrument.statsd.Statsd:
  - 24
  gunicorn.instrument.statsd.Statsd.__init__:
  - 36
  - 37
  - 27
  - 28
  - 30
  gunicorn.instrument.statsd.Statsd._sock_send:
  - 130
  - 131
  - 134
  - 135
  - 137
  - 138
  - 140
  gunicorn.instrument.statsd.Statsd.access:
  - 97
  - 100
  - 101
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 109
  gunicorn.instrument.statsd.Statsd.critical:
  - 45
  - 46
  gunicorn.instrument.statsd.Statsd.debug:
  - 66
  gunicorn.instrument.statsd.Statsd.decrement:
  - 120
  gunicorn.instrument.statsd.Statsd.error:
  - 49
  - 50
  gunicorn.instrument.statsd.Statsd.exception:
  - 57
  - 58
  gunicorn.instrument.statsd.Statsd.gauge:
  - 114
  gunicorn.instrument.statsd.Statsd.histogram:
  - 126
  gunicorn.instrument.statsd.Statsd.increment:
  - 117
  gunicorn.instrument.statsd.Statsd.info:
  - 62
  gunicorn.instrument.statsd.Statsd.log:
  - 69
  - 72
  - 73
  - 74
  - 75
  - 76
  - 77
  - 78
  - 79
  - 80
  - 81
  - 82
  - 83
  - 84
  - 85
  - 90
  - 91
  - 93
  gunicorn.instrument.statsd.Statsd.timer:
  - 123
  gunicorn.instrument.statsd.Statsd.warning:
  - 53
  - 54
  gunicorn.pidfile.Pidfile:
  - 11
  gunicorn.pidfile.Pidfile.create:
  - 32
  - 33
  - 35
  - 36
  - 37
  - 38
  - 41
  - 44
  - 22
  - 23
  - 24
  gunicorn.pidfile.Pidfile.rename:
  - 49
  - 47
  gunicorn.pidfile.Pidfile.unlink:
  - 52
  - 54
  - 55
  - 57
  - 58
  gunicorn.pidfile.Pidfile.validate:
  - 64
  - 67
  - 69
  - 74
  - 77
  - 79
  - 83
  - 63
  gunicorn.reloader:
  - 59
  - 68
  - 13
  gunicorn.reloader.InotifyReloader.__init__:
  - 77
  - 78
  - 79
  gunicorn.reloader.InotifyReloader.add_extra_file:
  - 82
  - 84
  - 85
  - 88
  - 89
  gunicorn.reloader.InotifyReloader.get_dirs:
  - 92
  - 93
  gunicorn.reloader.InotifyReloader.refresh_dirs:
  - 96
  - 97
  - 98
  - 99
  - 100
  gunicorn.reloader.InotifyReloader.run:
  - 103
  - 105
  - 106
  - 107
  - 112
  gunicorn.reloader.Reloader.run:
  - 43
  - 45
  - 48
  - 49
  - 52
  - 53
  - 54
  - 55
  gunicorn.reloader.ReloaderBase.__init__:
  - 18
  - 20
  gunicorn.reloader.ReloaderBase.add_extra_file:
  - 25
  gunicorn.reloader.ReloaderBase.get_files:
  - 34
  - 29
  - 30
  - 31
  gunicorn.sock.BaseSocket.__getattr__:
  - 40
  gunicorn.sock.BaseSocket.__init__:
  - 34
  - 26
  - 27
  - 30
  - 31
  gunicorn.sock.BaseSocket.__str__:
  - 37
  gunicorn.sock.BaseSocket.bind:
  - 63
  gunicorn.sock.BaseSocket.close:
  - 72
  - 66
  - 70
  gunicorn.sock.BaseSocket.set_options:
  - 43
  - 44
  - 45
  - 47
  - 49
  - 51
  - 52
  - 53
  - 56
  - 57
  - 59
  gunicorn.sock.TCP6Socket.__str__:
  - 120
  gunicorn.sock.TCPSocket:
  - 97
  gunicorn.sock.TCPSocket.__str__:
  - 90
  - 85
  gunicorn.sock.TCPSocket.get_backlog:
  - 106
  - 99
  - 103
  gunicorn.sock.TCPSocket.set_options:
  - 94
  - 95
  gunicorn.sock.UnixSocket.__init__:
  - 129
  - 131
  - 133
  - 136
  - 137
  - 140
  gunicorn.sock.UnixSocket.bind:
  - 146
  - 147
  - 148
  - 149
  gunicorn.sock._get_alpn_protocols:
  - 256
  - 261
  - 262
  - 263
  - 239
  - 247
  - 251
  gunicorn.sock._sock_type:
  - 153
  - 154
  - 158
  gunicorn.sock.close_sockets:
  - 231
  - 232
  - 233
  - 234
  - 235
  gunicorn.sock.create_sockets:
  - 166
  - 177
  - 178
  - 179
  - 180
  - 184
  - 187
  - 191
  - 192
  - 193
  - 194
  - 195
  - 196
  - 197
  - 202
  - 203
  - 205
  - 207
  - 209
  - 210
  - 211
  - 212
  - 214
  - 215
  - 216
  - 217
  - 221
  - 222
  - 223
  - 225
  gunicorn.sock.get_negotiated_protocol:
  - 299
  - 293
  - 303
  gunicorn.sock.is_http2_negotiated:
  - 314
  - 309
  gunicorn.sock.ssl_context:
  - 282
  gunicorn.sock.ssl_context.default_ssl_context_factory:
  - 269
  - 270
  - 272
  - 273
  - 276
  - 277
  - 278
  gunicorn.sock.ssl_wrap_socket:
  - 286
  gunicorn.systemd.listen_fds:
  - 35
  - 36
  - 38
  - 41
  - 42
  - 43
  - 12
  gunicorn.systemd.sd_notify:
  - 65
  - 66
  - 68
  - 69
  - 71
  - 73
  - 74
  - 75
  - 49
  - 60
  - 61
  gunicorn.util:
  - 33
  - 43
  - 174
  - 51
  - 61
  gunicorn.util._called_with_wrong_args:
  - 344
  - 355
  - 351
  gunicorn.util._setproctitle:
  - 64
  gunicorn.util._unlink:
  - 209
  gunicorn.util._waitfor:
  - 199
  - 200
  - 203
  - 205
  - 177
  - 179
  - 182
  gunicorn.util.bytes_to_str:
  - 656
  - 654
  gunicorn.util.check_is_writable:
  - 573
  - 574
  gunicorn.util.chown:
  - 171
  gunicorn.util.close:
  - 277
  gunicorn.util.close_on_exec:
  - 265
  - 267
  gunicorn.util.closerange:
  - 289
  - 287
  gunicorn.util.daemonize:
  - 512
  - 514
  - 515
  - 518
  - 523
  - 524
  - 525
  - 560
  - 561
  - 479
  - 483
  - 484
  - 485
  - 486
  - 488
  - 489
  - 491
  - 499
  - 504
  - 506
  - 508
  - 511
  gunicorn.util.daemonize.redirect:
  - 553
  - 554
  - 555
  - 556
  gunicorn.util.get_arity:
  - 136
  - 139
  - 140
  gunicorn.util.get_username:
  - 147
  - 148
  gunicorn.util.getcwd:
  - 455
  - 456
  - 457
  - 460
  - 462
  gunicorn.util.has_fileno:
  - 595
  - 590
  gunicorn.util.http_date:
  - 467
  - 468
  - 469
  - 470
  gunicorn.util.import_app:
  - 387
  - 420
  - 422
  - 423
  - 393
  - 396
  - 428
  - 398
  - 430
  - 370
  - 371
  - 435
  - 405
  - 406
  - 377
  - 379
  - 444
  - 447
  gunicorn.util.is_hoppish:
  - 475
  gunicorn.util.is_ipv6:
  - 225
  gunicorn.util.load_class:
  - 99
  - 100
  - 102
  - 105
  - 106
  - 110
  - 81
  - 114
  - 83
  - 85
  - 118
  - 87
  - 121
  - 123
  - 93
  - 126
  - 95
  gunicorn.util.load_entry_point:
  - 74
  - 76
  - 71
  gunicorn.util.make_fail_app:
  - 616
  gunicorn.util.make_fail_app.app:
  - 619
  - 621
  gunicorn.util.parse_address:
  - 257
  - 261
  - 234
  - 235
  - 237
  - 240
  - 244
  - 245
  - 248
  - 249
  - 250
  - 251
  - 252
  - 253
  gunicorn.util.reraise:
  - 643
  - 644
  - 645
  gunicorn.util.seed:
  - 568
  - 566
  gunicorn.util.set_non_blocking:
  - 272
  - 271
  gunicorn.util.set_owner_process:
  - 161
  - 162
  - 163
  - 164
  - 166
  - 167
  - 152
  - 154
  - 155
  - 157
  gunicorn.util.split_request_uri:
  - 637
  - 634
  - 635
  - 629
  gunicorn.util.to_bytestring:
  - 586
  - 580
  - 581
  - 583
  gunicorn.util.unlink:
  - 216
  - 219
  gunicorn.util.unquote_to_wsgi_str:
  - 660
  gunicorn.util.warn:
  - 609
  - 611
  - 612
  - 603
  - 605
  - 606
  - 607
  gunicorn.util.write:
  - 304
  - 305
  - 303
  gunicorn.util.write_chunk:
  - 295
  - 296
  - 297
  - 298
  - 299
  gunicorn.util.write_error:
  - 321
  - 331
  - 333
  - 339
  - 340
  gunicorn.util.write_nonblock:
  - 309
  - 310
  - 312
  - 313
  - 315
  - 317
  gunicorn.uwsgi.errors.ForbiddenUWSGIRequest:
  - 39
  gunicorn.uwsgi.errors.InvalidUWSGIHeader:
  - 17
  gunicorn.uwsgi.errors.UWSGIParseException:
  - 13
  gunicorn.uwsgi.errors.UnsupportedModifier:
  - 28
  gunicorn.uwsgi.message.UWSGIRequest:
  - 20
  gunicorn.uwsgi.message.UWSGIRequest.__init__:
  - 65
  - 68
  - 69
  - 70
  gunicorn.uwsgi.message.UWSGIRequest._check_allowed_ip:
  - 73
  - 74
  - 77
  - 81
  - 84
  gunicorn.uwsgi.message.UWSGIRequest._extract_request_info:
  - 225
  - 226
  - 227
  - 228
  - 229
  - 230
  - 202
  - 205
  - 206
  - 209
  - 178
  - 215
  - 217
  - 222
  - 223
  gunicorn.uwsgi.message.UWSGIRequest._parse_vars:
  - 163
  - 165
  - 169
  - 139
  - 171
  - 146
  - 147
  - 151
  - 153
  - 157
  - 159
  gunicorn.uwsgi.message.UWSGIRequest._read_exact:
  - 128
  - 130
  - 132
  - 133
  - 119
  - 120
  - 124
  - 125
  - 127
  gunicorn.uwsgi.message.UWSGIRequest.force_close:
  - 88
  gunicorn.uwsgi.message.UWSGIRequest.parse:
  - 99
  - 103
  - 107
  - 108
  - 109
  - 111
  - 114
  - 92
  - 94
  - 95
  gunicorn.uwsgi.message.UWSGIRequest.set_body_reader:
  - 233
  - 243
  - 237
  - 239
  gunicorn.uwsgi.message.UWSGIRequest.should_close:
  - 246
  - 247
  - 251
  - 252
  - 254
  gunicorn.uwsgi.parser.UWSGIParser:
  - 10
  gunicorn.workers.base.Worker:
  - 32
  - 33
  gunicorn.workers.base.Worker.__init__:
  - 65
  - 57
  - 58
  - 39
  gunicorn.workers.base.Worker.handle_abort:
  - 197
  - 198
  gunicorn.workers.base.Worker.handle_error:
  - 258
  - 260
  - 261
  - 263
  - 268
  - 269
  - 270
  - 272
  - 273
  - 275
  - 276
  - 279
  - 281
  - 201
  - 203
  - 216
  - 217
  - 218
  - 219
  - 220
  - 221
  - 222
  - 223
  - 225
  - 226
  - 228
  - 229
  - 230
  - 231
  - 232
  - 234
  - 235
  - 236
  - 238
  - 240
  - 242
  - 244
  - 245
  - 246
  - 250
  - 251
  - 252
  - 254
  gunicorn.workers.base.Worker.handle_quit:
  - 192
  - 193
  - 191
  gunicorn.workers.base.Worker.handle_usr1:
  - 183
  gunicorn.workers.base.Worker.handle_winch:
  - 285
  gunicorn.workers.base.Worker.init_process:
  - 131
  - 133
  - 136
  - 137
  - 138
  - 140
  - 144
  - 87
  - 94
  - 95
  - 98
  - 102
  - 105
  - 106
  - 107
  - 108
  - 111
  - 112
  - 113
  - 117
  - 119
  - 122
  gunicorn.workers.base.Worker.init_process.changed:
  - 128
  - 129
  - 124
  - 126
  - 127
  gunicorn.workers.base.Worker.init_signals:
  - 164
  - 165
  - 167
  - 168
  - 169
  - 170
  - 171
  - 172
  - 176
  - 177
  - 179
  - 180
  gunicorn.workers.base.Worker.load_wsgi:
  - 160
  - 148
  - 150
  - 153
  - 155
  - 156
  - 158
  - 159
  gunicorn.workers.base.Worker.notify:
  - 76
  - 71
  gunicorn.workers.base.Worker.run:
  - 79
  gunicorn.workers.base_async:
  - 17
  gunicorn.workers.base_async.AsyncWorker.__init__:
  - 23
  gunicorn.workers.base_async.AsyncWorker.handle:
  - 38
  - 39
  - 42
  - 44
  - 46
  - 49
  - 51
  - 52
  - 53
  - 54
  - 60
  - 61
  - 62
  - 64
  - 68
  - 70
  - 72
  - 75
  - 78
  - 80
  - 82
  - 83
  - 84
  - 86
  - 87
  - 89
  - 90
  - 92
  - 93
  - 94
  - 95
  - 97
  - 99
  - 101
  gunicorn.workers.base_async.AsyncWorker.handle_http2:
  - 131
  - 134
  - 135
  - 104
  - 137
  - 139
  - 108
  - 140
  - 142
  - 111
  - 112
  - 116
  - 118
  - 121
  - 123
  - 125
  - 127
  gunicorn.workers.base_async.AsyncWorker.handle_http2_request:
  - 145
  - 147
  - 152
  - 153
  - 158
  - 159
  - 160
  - 164
  - 165
  - 171
  - 172
  - 173
  - 176
  - 177
  - 180
  - 187
  - 188
  - 191
  - 195
  - 197
  gunicorn.workers.base_async.AsyncWorker.handle_request:
  - 256
  - 200
  - 204
  - 205
  - 209
  - 210
  - 211
  - 214
  - 215
  - 217
  - 218
  - 221
  - 222
  - 224
  - 225
  - 226
  - 228
  - 229
  - 230
  - 231
  - 232
  - 239
  - 241
  - 244
  - 246
  - 247
  - 254
  gunicorn.workers.gasgi:
  - 5
  gunicorn.workers.gasgi.ASGIWorker:
  - 22
  gunicorn.workers.gasgi.ASGIWorker.__init__:
  - 32
  gunicorn.workers.gasgi.ASGIWorker._cleanup:
  - 290
  - 292
  - 294
  - 296
  - 299
  - 301
  - 273
  - 276
  - 277
  - 278
  - 281
  - 282
  - 283
  - 286
  - 287
  gunicorn.workers.gasgi.ASGIWorker._get_ssl_context:
  - 269
  - 267
  - 261
  - 262
  gunicorn.workers.gasgi.ASGIWorker._make_error_app:
  - 90
  gunicorn.workers.gasgi.ASGIWorker._make_error_app.error_app:
  - 98
  - 100
  - 102
  - 103
  - 104
  - 105
  - 106
  - 107
  - 108
  - 92
  - 93
  gunicorn.workers.gasgi.ASGIWorker._serve:
  - 162
  - 164
  - 165
  - 167
  - 169
  - 171
  - 172
  - 176
  - 180
  - 182
  - 184
  - 185
  - 191
  - 192
  - 194
  - 196
  - 197
  - 203
  - 206
  - 207
  - 213
  - 219
  gunicorn.workers.gasgi.ASGIWorker._serve.<lambda1>:
  - 185
  gunicorn.workers.gasgi.ASGIWorker._setup_event_loop:
  - 65
  - 68
  - 69
  - 71
  - 72
  - 74
  - 75
  - 77
  - 55
  - 56
  - 58
  gunicorn.workers.gasgi.ASGIWorker._shutdown:
  - 256
  - 258
  - 222
  - 223
  - 226
  - 227
  - 230
  - 231
  - 232
  - 235
  - 240
  - 242
  - 243
  - 244
  - 245
  - 246
  - 248
  - 250
  - 251
  - 254
  gunicorn.workers.gasgi.ASGIWorker.check_config:
  - 43
  - 44
  - 45
  gunicorn.workers.gasgi.ASGIWorker.handle_abort_signal:
  - 147
  - 149
  - 150
  gunicorn.workers.gasgi.ASGIWorker.handle_exit_signal:
  - 135
  gunicorn.workers.gasgi.ASGIWorker.handle_quit_signal:
  - 128
  - 132
  - 126
  gunicorn.workers.gasgi.ASGIWorker.handle_usr1_signal:
  - 139
  - 140
  gunicorn.workers.gasgi.ASGIWorker.handle_winch_signal:
  - 144
  - 143
  gunicorn.workers.gasgi.ASGIWorker.init_process:
  - 49
  - 51
  - 52
  gunicorn.workers.gasgi.ASGIWorker.init_signals:
  - 112
  - 114
  - 115
  - 118
  - 119
  - 120
  - 121
  - 122
  - 123
  gunicorn.workers.gasgi.ASGIWorker.load_wsgi:
  - 80
  - 82
  - 84
  - 86
  - 87
  gunicorn.workers.gasgi.ASGIWorker.run:
  - 153
  - 155
  - 157
  - 159
  gunicorn.workers.geventlet:
  - 36
  - 12
  - 51
  - 52
  - 28
  gunicorn.workers.geventlet.EventletWorker.handle:
  - 185
  - 186
  - 187
  gunicorn.workers.geventlet.EventletWorker.handle_quit:
  - 176
  gunicorn.workers.geventlet.EventletWorker.handle_usr1:
  - 179
  gunicorn.workers.geventlet.EventletWorker.init_process:
  - 168
  - 172
  - 173
  gunicorn.workers.geventlet.EventletWorker.is_already_handled:
  - 160
  - 163
  - 165
  gunicorn.workers.geventlet.EventletWorker.patch:
  - 155
  - 156
  gunicorn.workers.geventlet.EventletWorker.run:
  - 192
  - 193
  - 194
  - 195
  - 198
  - 199
  - 202
  - 203
  - 205
  - 208
  - 209
  - 210
  - 211
  - 212
  - 214
  - 216
  - 217
  - 191
  gunicorn.workers.geventlet.EventletWorker.timeout_ctx:
  - 182
  gunicorn.workers.geventlet._eventlet_serve:
  - 101
  - 102
  - 106
  - 107
  - 108
  - 111
  - 112
  - 94
  gunicorn.workers.geventlet._eventlet_socket_sendfile:
  - 69
  - 70
  - 71
  - 90
  - 73
  - 74
  - 78
  - 83
  - 89
  - 58
  - 60
  - 61
  - 62
  gunicorn.workers.geventlet._eventlet_stop:
  - 125
  - 131
  - 117
  - 127
  gunicorn.workers.geventlet.patch_sendfile:
  - 144
  gunicorn.workers.ggevent:
  - 17
  gunicorn.workers.ggevent.GeventPyWSGIWorker:
  - 188
  gunicorn.workers.ggevent.GeventWorker.handle:
  - 120
  - 119
  gunicorn.workers.ggevent.GeventWorker.handle_quit:
  - 133
  gunicorn.workers.ggevent.GeventWorker.handle_request:
  - 124
  gunicorn.workers.ggevent.GeventWorker.handle_usr1:
  - 138
  gunicorn.workers.ggevent.GeventWorker.init_process:
  - 141
  - 142
  - 143
  gunicorn.workers.ggevent.GeventWorker.notify:
  - 48
  - 49
  - 50
  - 51
  gunicorn.workers.ggevent.GeventWorker.patch:
  - 42
  - 43
  - 44
  - 38
  gunicorn.workers.ggevent.GeventWorker.run:
  - 60
  - 61
  - 63
  - 64
  - 65
  - 66
  - 67
  - 68
  - 72
  - 77
  - 78
  - 79
  - 82
  - 83
  - 86
  - 87
  - 91
  - 92
  - 95
  - 96
  - 98
  - 99
  - 103
  - 106
  - 107
  - 110
  - 111
  - 112
  gunicorn.workers.ggevent.GeventWorker.timeout_ctx:
  - 54
  gunicorn.workers.ggevent.PyWSGIHandler.get_environ:
  - 177
  gunicorn.workers.ggevent.PyWSGIHandler.log_request:
  - 161
  - 162
  - 164
  - 168
  - 169
  - 170
  - 171
  - 174
  gunicorn.workers.gthread.PollableMethodQueue:
  - 87
  gunicorn.workers.gthread.PollableMethodQueue.close:
  - 114
  - 115
  - 117
  - 120
  - 122
  gunicorn.workers.gthread.PollableMethodQueue.defer:
  - 138
  - 131
  - 140
  gunicorn.workers.gthread.PollableMethodQueue.fileno:
  - 127
  gunicorn.workers.gthread.PollableMethodQueue.init:
  - 104
  - 105
  - 109
  - 110
  - 111
  gunicorn.workers.gthread.PollableMethodQueue.run_callbacks:
  - 161
  - 163
  - 164
  - 147
  - 154
  gunicorn.workers.gthread.TConn.__init__:
  - 47
  gunicorn.workers.gthread.TConn.close:
  - 83
  gunicorn.workers.gthread.TConn.init:
  - 64
  - 67
  - 69
  - 72
  - 76
  - 51
  - 54
  - 56
  - 58
  - 59
  - 63
  gunicorn.workers.gthread.TConn.set_timeout:
  - 80
  gunicorn.workers.gthread.ThreadWorker.__init__:
  - 179
  - 180
  - 173
  gunicorn.workers.gthread.ThreadWorker.accept:
  - 235
  - 237
  - 239
  - 241
  - 244
  - 246
  gunicorn.workers.gthread.ThreadWorker.check_config:
  - 188
  - 189
  gunicorn.workers.gthread.ThreadWorker.enqueue_req:
  - 232
  - 229
  - 230
  - 231
  gunicorn.workers.gthread.ThreadWorker.enqueue_req.<lambda1>:
  - 232
  gunicorn.workers.gthread.ThreadWorker.finish_request:
  - 353
  - 356
  - 341
  - 343
  - 344
  - 346
  - 347
  - 348
  - 349
  - 350
  gunicorn.workers.gthread.ThreadWorker.get_thread_pool:
  - 200
  - 199
  gunicorn.workers.gthread.ThreadWorker.handle:
  - 385
  - 388
  - 390
  - 392
  - 393
  - 394
  - 396
  - 397
  - 399
  - 400
  - 402
  - 403
  - 404
  - 405
  - 407
  - 409
  - 359
  - 366
  - 370
  - 373
  - 374
  - 376
  - 377
  - 381
  - 382
  gunicorn.workers.gthread.ThreadWorker.handle_exit:
  - 203
  - 204
  - 207
  gunicorn.workers.gthread.ThreadWorker.handle_http2:
  - 448
  - 450
  - 451
  - 453
  - 455
  - 456
  - 458
  - 427
  - 429
  - 431
  - 433
  - 435
  - 440
  - 443
  - 444
  - 414
  gunicorn.workers.gthread.ThreadWorker.handle_http2_request:
  - 512
  - 515
  - 518
  - 519
  - 520
  - 523
  - 525
  - 526
  - 529
  - 530
  - 531
  - 532
  - 535
  - 538
  - 545
  - 546
  - 550
  - 552
  - 463
  - 469
  - 470
  - 473
  - 495
  - 496
  - 497
  - 501
  - 506
  - 507
  - 508
  - 511
  gunicorn.workers.gthread.ThreadWorker.handle_http2_request.send_early_hints_h2:
  - 480
  - 481
  gunicorn.workers.gthread.ThreadWorker.handle_http2_request.send_trailers_h2:
  - 489
  - 490
  gunicorn.workers.gthread.ThreadWorker.handle_quit:
  - 210
  - 211
  - 212
  gunicorn.workers.gthread.ThreadWorker.handle_request:
  - 558
  - 559
  - 560
  - 564
  - 565
  - 566
  - 568
  - 570
  - 571
  - 572
  - 573
  - 575
  - 577
  - 578
  - 580
  - 581
  - 583
  - 585
  - 586
  - 587
  - 588
  - 590
  - 591
  - 595
  - 597
  - 600
  - 602
  - 603
  - 610
  - 612
  gunicorn.workers.gthread.ThreadWorker.init_process:
  - 193
  - 194
  - 195
  - 196
  gunicorn.workers.gthread.ThreadWorker.is_parent_alive:
  - 277
  - 278
  gunicorn.workers.gthread.ThreadWorker.murder_keepalived:
  - 258
  - 259
  - 263
  - 267
  - 269
  - 273
  gunicorn.workers.gthread.ThreadWorker.on_client_socket_readable:
  - 250
  - 251
  - 252
  - 255
  gunicorn.workers.gthread.ThreadWorker.run:
  - 295
  - 300
  - 304
  - 308
  - 309
  - 312
  - 314
  - 318
  - 321
  - 324
  - 326
  - 327
  - 329
  - 330
  - 333
  - 334
  - 335
  - 337
  - 338
  gunicorn.workers.gthread.ThreadWorker.set_accept_enabled:
  - 224
  - 215
  - 216
  - 219
  - 220
  - 221
  - 222
  gunicorn.workers.gthread.ThreadWorker.wait_for_and_dispatch_events:
  - 288
  - 290
  - 283
  - 285
  - 286
  gunicorn.workers.gtornado.TornadoWorker.handle_exit:
  - 36
  - 37
  gunicorn.workers.gtornado.TornadoWorker.handle_request:
  - 41
  - 42
  gunicorn.workers.gtornado.TornadoWorker.heartbeat:
  - 64
  - 65
  - 54
  - 55
  - 56
  - 58
  - 63
  gunicorn.workers.gtornado.TornadoWorker.init_process:
  - 72
  - 73
  gunicorn.workers.gtornado.TornadoWorker.run:
  - 97
  - 98
  - 99
  - 122
  - 107
  - 76
  - 108
  - 110
  - 81
  - 82
  - 115
  - 116
  - 117
  - 120
  - 89
  - 90
  - 91
  - 92
  gunicorn.workers.gtornado.TornadoWorker.run._HTTPServer.on_close:
  - 104
  - 105
  gunicorn.workers.gtornado.TornadoWorker.setup:
  - 25
  gunicorn.workers.gtornado.TornadoWorker.setup.clear:
  - 29
  - 30
  gunicorn.workers.gtornado.TornadoWorker.watchdog:
  - 49
  - 50
  - 46
  - 47
  gunicorn.workers.sync.StopWaiting:
  - 22
  gunicorn.workers.sync.SyncWorker.accept:
  - 28
  - 29
  - 30
  - 31
  gunicorn.workers.sync.SyncWorker.handle:
  - 138
  - 139
  - 140
  - 141
  - 142
  - 144
  - 146
  - 148
  - 149
  - 150
  - 152
  - 153
  - 155
  - 156
  - 158
  - 159
  - 160
  - 161
  - 163
  - 165
  - 167
  gunicorn.workers.sync.SyncWorker.handle_request:
  - 173
  - 174
  - 175
  - 176
  - 180
  - 182
  - 183
  - 185
  - 187
  - 188
  - 190
  - 191
  - 192
  - 194
  - 195
  - 196
  - 197
  - 200
  - 202
  - 205
  - 207
  - 208
  - 215
  - 217
  gunicorn.workers.sync.SyncWorker.is_parent_alive:
  - 54
  - 55
  gunicorn.workers.sync.SyncWorker.run:
  - 128
  - 130
  - 131
  - 133
  - 118
  - 119
  - 127
  gunicorn.workers.sync.SyncWorker.run_for_multiple:
  - 97
  - 98
  - 99
  - 103
  - 105
  - 109
  - 90
  - 93
  gunicorn.workers.sync.SyncWorker.run_for_one:
  - 69
  - 76
  - 80
  - 84
  - 62
  gunicorn.workers.sync.SyncWorker.wait:
  - 35
  - 36
  - 37
  - 38
  - 39
  - 43
  - 45
  - 46
  gunicorn.workers.workertmp:
  - 12
  - 13
  gunicorn.workers.workertmp.WorkerTmp.__init__:
  - 33
  - 34
  - 37
  - 39
  - 19
  - 21
  - 23
  - 24
  - 28
  - 29
  gunicorn.workers.workertmp.WorkerTmp.close:
  - 53
  gunicorn.workers.workertmp.WorkerTmp.fileno:
  - 50
  gunicorn.workers.workertmp.WorkerTmp.last_update:
  - 47
  gunicorn.workers.workertmp.WorkerTmp.notify:
  - 43
  - 44
Fuzzer filename: /src/fuzz_util.py
Inheritance:
  gunicorn.app.base.Application:
  - BaseApplication
  gunicorn.app.base.BaseApplication: []
  gunicorn.app.pasterapp.serve.PasterServerApplication:
  - WSGIApplication
  gunicorn.app.wsgiapp.WSGIApplication:
  - Application
  gunicorn.arbiter.Arbiter: []
  gunicorn.asgi.lifespan.LifespanManager: []
  gunicorn.asgi.message.AsyncRequest: []
  gunicorn.asgi.protocol.ASGIProtocol: []
  gunicorn.asgi.protocol.ASGIResponseInfo: []
  gunicorn.asgi.unreader.AsyncUnreader: []
  gunicorn.asgi.uwsgi.AsyncUWSGIRequest:
  - UWSGIRequest
  gunicorn.asgi.websocket.WebSocketProtocol: []
  gunicorn.config.ASGIDisconnectGracePeriod:
  - Setting
  gunicorn.config.ASGILifespan:
  - Setting
  gunicorn.config.ASGILoop:
  - Setting
  gunicorn.config.AccessLog:
  - Setting
  gunicorn.config.AccessLogFormat:
  - Setting
  gunicorn.config.Backlog:
  - Setting
  gunicorn.config.BacklogMetric:
  - Setting
  gunicorn.config.Bind:
  - Setting
  gunicorn.config.CACerts:
  - Setting
  gunicorn.config.CaptureOutput:
  - Setting
  gunicorn.config.CasefoldHTTPMethod:
  - Setting
  gunicorn.config.CertFile:
  - Setting
  gunicorn.config.CertReqs:
  - Setting
  gunicorn.config.Chdir:
  - Setting
  gunicorn.config.ChildExit:
  - Setting
  gunicorn.config.Ciphers:
  - Setting
  gunicorn.config.Config: []
  gunicorn.config.ConfigCheck:
  - Setting
  gunicorn.config.ConfigFile:
  - Setting
  gunicorn.config.ControlSocket:
  - Setting
  gunicorn.config.ControlSocketDisable:
  - Setting
  gunicorn.config.ControlSocketMode:
  - Setting
  gunicorn.config.Daemon:
  - Setting
  gunicorn.config.DefaultProcName:
  - Setting
  gunicorn.config.DirtyApps:
  - Setting
  gunicorn.config.DirtyGracefulTimeout:
  - Setting
  gunicorn.config.DirtyPostFork:
  - Setting
  gunicorn.config.DirtyThreads:
  - Setting
  gunicorn.config.DirtyTimeout:
  - Setting
  gunicorn.config.DirtyWorkerExit:
  - Setting
  gunicorn.config.DirtyWorkerInit:
  - Setting
  gunicorn.config.DirtyWorkers:
  - Setting
  gunicorn.config.DisableRedirectAccessToSyslog:
  - Setting
  gunicorn.config.DoHandshakeOnConnect:
  - Setting
  gunicorn.config.DogstatsdTags:
  - Setting
  gunicorn.config.EnableStdioInheritance:
  - Setting
  gunicorn.config.Env:
  - Setting
  gunicorn.config.ErrorLog:
  - Setting
  gunicorn.config.ForwardedAllowIPS:
  - Setting
  gunicorn.config.ForwarderHeaders:
  - Setting
  gunicorn.config.GracefulTimeout:
  - Setting
  gunicorn.config.Group:
  - Setting
  gunicorn.config.HTTP2InitialWindowSize:
  - Setting
  gunicorn.config.HTTP2MaxConcurrentStreams:
  - Setting
  gunicorn.config.HTTP2MaxFrameSize:
  - Setting
  gunicorn.config.HTTP2MaxHeaderListSize:
  - Setting
  gunicorn.config.HTTPProtocols:
  - Setting
  gunicorn.config.HeaderMap:
  - Setting
  gunicorn.config.Initgroups:
  - Setting
  gunicorn.config.Keepalive:
  - Setting
  gunicorn.config.KeyFile:
  - Setting
  gunicorn.config.LimitRequestFieldSize:
  - Setting
  gunicorn.config.LimitRequestFields:
  - Setting
  gunicorn.config.LimitRequestLine:
  - Setting
  gunicorn.config.LogConfig:
  - Setting
  gunicorn.config.LogConfigDict:
  - Setting
  gunicorn.config.LogConfigJson:
  - Setting
  gunicorn.config.LoggerClass:
  - Setting
  gunicorn.config.Loglevel:
  - Setting
  gunicorn.config.MaxRequests:
  - Setting
  gunicorn.config.MaxRequestsJitter:
  - Setting
  gunicorn.config.NewSSLContext:
  - Setting
  gunicorn.config.NumWorkersChanged:
  - Setting
  gunicorn.config.OnDirtyStarting:
  - Setting
  gunicorn.config.OnExit:
  - Setting
  gunicorn.config.OnReload:
  - Setting
  gunicorn.config.OnStarting:
  - Setting
  gunicorn.config.Paste:
  - Setting
  gunicorn.config.PasteGlobalConf:
  - Setting
  gunicorn.config.PermitObsoleteFolding:
  - Setting
  gunicorn.config.PermitUnconventionalHTTPMethod:
  - Setting
  gunicorn.config.PermitUnconventionalHTTPVersion:
  - Setting
  gunicorn.config.Pidfile:
  - Setting
  gunicorn.config.PostRequest:
  - Setting
  gunicorn.config.PostWorkerInit:
  - Setting
  gunicorn.config.Postfork:
  - Setting
  gunicorn.config.PreExec:
  - Setting
  gunicorn.config.PreRequest:
  - Setting
  gunicorn.config.Prefork:
  - Setting
  gunicorn.config.PreloadApp:
  - Setting
  gunicorn.config.PrintConfig:
  - Setting
  gunicorn.config.Procname:
  - Setting
  gunicorn.config.Protocol:
  - Setting
  gunicorn.config.ProxyAllowFrom:
  - Setting
  gunicorn.config.ProxyProtocol:
  - Setting
  gunicorn.config.PythonPath:
  - Setting
  gunicorn.config.Reload:
  - Setting
  gunicorn.config.ReloadEngine:
  - Setting
  gunicorn.config.ReloadExtraFiles:
  - Setting
  gunicorn.config.ReusePort:
  - Setting
  gunicorn.config.RootPath:
  - Setting
  gunicorn.config.SSLVersion:
  - Setting
  gunicorn.config.SecureSchemeHeader:
  - Setting
  gunicorn.config.Sendfile:
  - Setting
  gunicorn.config.Setting: []
  gunicorn.config.SettingMeta:
  - type
  gunicorn.config.Spew:
  - Setting
  gunicorn.config.StatsdHost:
  - Setting
  gunicorn.config.StatsdPrefix:
  - Setting
  gunicorn.config.StripHeaderSpaces:
  - Setting
  gunicorn.config.SuppressRaggedEOFs:
  - Setting
  gunicorn.config.Syslog:
  - Setting
  gunicorn.config.SyslogFacility:
  - Setting
  gunicorn.config.SyslogPrefix:
  - Setting
  gunicorn.config.SyslogTo:
  - Setting
  gunicorn.config.Timeout:
  - Setting
  gunicorn.config.TmpUploadDir:
  - Setting
  gunicorn.config.UWSGIAllowFrom:
  - Setting
  gunicorn.config.Umask:
  - Setting
  gunicorn.config.User:
  - Setting
  gunicorn.config.WSGIApp:
  - Setting
  gunicorn.config.WhenReady:
  - Setting
  gunicorn.config.WorkerAbort:
  - Setting
  gunicorn.config.WorkerClass:
  - Setting
  gunicorn.config.WorkerConnections:
  - Setting
  gunicorn.config.WorkerExit:
  - Setting
  gunicorn.config.WorkerInt:
  - Setting
  gunicorn.config.WorkerThreads:
  - Setting
  gunicorn.config.WorkerTmpDir:
  - Setting
  gunicorn.config.Workers:
  - Setting
  gunicorn.ctl.client.ControlClient: []
  gunicorn.ctl.client.ControlClientError:
  - Exception
  gunicorn.ctl.handlers.CommandHandlers: []
  gunicorn.ctl.protocol.ControlProtocol: []
  gunicorn.ctl.protocol.ProtocolError:
  - Exception
  gunicorn.ctl.server.ControlSocketServer: []
  gunicorn.debug.Spew: []
  gunicorn.dirty.app.DirtyApp: []
  gunicorn.dirty.arbiter.DirtyArbiter: []
  gunicorn.dirty.client.DirtyAsyncStreamIterator: []
  gunicorn.dirty.client.DirtyClient: []
  gunicorn.dirty.client.DirtyStreamIterator: []
  gunicorn.dirty.errors.DirtyAppError:
  - DirtyError
  gunicorn.dirty.errors.DirtyAppNotFoundError:
  - DirtyAppError
  gunicorn.dirty.errors.DirtyConnectionError:
  - DirtyError
  gunicorn.dirty.errors.DirtyError:
  - Exception
  gunicorn.dirty.errors.DirtyNoWorkersAvailableError:
  - DirtyError
  gunicorn.dirty.errors.DirtyProtocolError:
  - DirtyError
  gunicorn.dirty.errors.DirtyTimeoutError:
  - DirtyError
  gunicorn.dirty.errors.DirtyWorkerError:
  - DirtyError
  gunicorn.dirty.protocol.BinaryProtocol: []
  gunicorn.dirty.stash.StashClient: []
  gunicorn.dirty.stash.StashError:
  - DirtyError
  gunicorn.dirty.stash.StashKeyNotFoundError:
  - StashError
  gunicorn.dirty.stash.StashTable: []
  gunicorn.dirty.stash.StashTableNotFoundError:
  - StashError
  gunicorn.dirty.tlv.TLVEncoder: []
  gunicorn.dirty.worker.DirtyWorker: []
  gunicorn.errors.AppImportError:
  - Exception
  gunicorn.errors.ConfigError:
  - Exception
  gunicorn.errors.HaltServer:
  - BaseException
  gunicorn.glogging.Logger: []
  gunicorn.glogging.SafeAtoms:
  - dict
  gunicorn.http.body.Body: []
  gunicorn.http.body.ChunkedReader: []
  gunicorn.http.body.EOFReader: []
  gunicorn.http.body.LengthReader: []
  gunicorn.http.errors.ChunkMissingTerminator:
  - IOError
  gunicorn.http.errors.ConfigurationProblem:
  - ParseException
  gunicorn.http.errors.ExpectationFailed:
  - ParseException
  gunicorn.http.errors.ForbiddenProxyRequest:
  - ParseException
  gunicorn.http.errors.InvalidChunkSize:
  - IOError
  gunicorn.http.errors.InvalidHTTPVersion:
  - ParseException
  gunicorn.http.errors.InvalidHeader:
  - ParseException
  gunicorn.http.errors.InvalidHeaderName:
  - ParseException
  gunicorn.http.errors.InvalidProxyHeader:
  - ParseException
  gunicorn.http.errors.InvalidProxyLine:
  - ParseException
  gunicorn.http.errors.InvalidRequestLine:
  - ParseException
  gunicorn.http.errors.InvalidRequestMethod:
  - ParseException
  gunicorn.http.errors.InvalidSchemeHeaders:
  - ParseException
  gunicorn.http.errors.LimitRequestHeaders:
  - ParseException
  gunicorn.http.errors.LimitRequestLine:
  - ParseException
  gunicorn.http.errors.NoMoreData:
  - IOError
  gunicorn.http.errors.ObsoleteFolding:
  - ParseException
  gunicorn.http.errors.ParseException:
  - Exception
  gunicorn.http.errors.UnsupportedTransferCoding:
  - ParseException
  gunicorn.http.message.Message: []
  gunicorn.http.message.PPCommand:
  - IntEnum
  gunicorn.http.message.PPFamily:
  - IntEnum
  gunicorn.http.message.PPProtocol:
  - IntEnum
  gunicorn.http.message.Request:
  - Message
  gunicorn.http.parser.Parser: []
  gunicorn.http.parser.RequestParser:
  - Parser
  gunicorn.http.unreader.IterUnreader:
  - Unreader
  gunicorn.http.unreader.SocketUnreader:
  - Unreader
  gunicorn.http.unreader.Unreader: []
  gunicorn.http.wsgi.FileWrapper: []
  gunicorn.http.wsgi.Response: []
  gunicorn.http.wsgi.WSGIErrorsWrapper: []
  gunicorn.http2.async_connection.AsyncHTTP2Connection: []
  gunicorn.http2.connection.HTTP2ServerConnection: []
  gunicorn.http2.errors.HTTP2Cancel:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2CompressionError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2ConfigurationError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2ConnectError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2ConnectionError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2EnhanceYourCalm:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2Error:
  - Exception
  gunicorn.http2.errors.HTTP2ErrorCode: []
  gunicorn.http2.errors.HTTP2FlowControlError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2FrameSizeError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2InadequateSecurity:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2InternalError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2NotAvailable:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2ProtocolError:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2RefusedStream:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2RequiresHTTP11:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2SettingsTimeout:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2StreamClosed:
  - HTTP2Error
  gunicorn.http2.errors.HTTP2StreamError:
  - HTTP2Error
  gunicorn.http2.request.HTTP2Body: []
  gunicorn.http2.request.HTTP2Request: []
  gunicorn.http2.stream.HTTP2Stream: []
  gunicorn.http2.stream.StreamState:
  - Enum
  gunicorn.instrument.statsd.Statsd:
  - Logger
  gunicorn.pidfile.Pidfile: []
  gunicorn.reloader.InotifyReloader:
  - ReloaderBase
  gunicorn.reloader.Reloader:
  - ReloaderBase
  gunicorn.reloader.ReloaderBase: []
  gunicorn.sock.BaseSocket: []
  gunicorn.sock.TCP6Socket:
  - TCPSocket
  gunicorn.sock.TCPSocket:
  - BaseSocket
  gunicorn.sock.UnixSocket:
  - BaseSocket
  gunicorn.uwsgi.errors.ForbiddenUWSGIRequest:
  - UWSGIParseException
  gunicorn.uwsgi.errors.InvalidUWSGIHeader:
  - UWSGIParseException
  gunicorn.uwsgi.errors.UWSGIParseException:
  - Exception
  gunicorn.uwsgi.errors.UnsupportedModifier:
  - UWSGIParseException
  gunicorn.uwsgi.message.UWSGIRequest: []
  gunicorn.uwsgi.parser.UWSGIParser:
  - Parser
  gunicorn.workers.base.Worker: []
  gunicorn.workers.base_async.AsyncWorker: []
  gunicorn.workers.gasgi.ASGIWorker: []
  gunicorn.workers.geventlet.EventletWorker:
  - AsyncWorker
  gunicorn.workers.ggevent.GeventPyWSGIWorker:
  - GeventWorker
  gunicorn.workers.ggevent.GeventResponse: []
  gunicorn.workers.ggevent.GeventWorker:
  - AsyncWorker
  gunicorn.workers.ggevent.PyWSGIHandler: []
  gunicorn.workers.ggevent.PyWSGIServer: []
  gunicorn.workers.gthread.PollableMethodQueue: []
  gunicorn.workers.gthread.TConn: []
  gunicorn.workers.gthread.ThreadWorker: []
  gunicorn.workers.gtornado.TornadoWorker:
  - Worker
  gunicorn.workers.gtornado.TornadoWorker.run._HTTPServer: []
  gunicorn.workers.sync.StopWaiting:
  - Exception
  gunicorn.workers.sync.SyncWorker: []
  gunicorn.workers.workertmp.WorkerTmp: []
ep:
  func_name: TestInput
  module: '...fuzz_util'
