All classes:
- websocket._exceptions.WebSocketException
- websocket._exceptions.WebSocketProtocolException
- websocket._exceptions.WebSocketPayloadException
- websocket._exceptions.WebSocketConnectionClosedException
- websocket._exceptions.WebSocketTimeoutException
- websocket._exceptions.WebSocketProxyException
- websocket._exceptions.WebSocketBadStatusException
- websocket._exceptions.WebSocketAddressException
- websocket._utils.NoLock
- websocket._abnf.ABNF
- websocket._abnf.frame_buffer
- websocket._abnf.continuous_frame
- websocket._logging.NullHandler
- websocket._cookiejar.SimpleCookieJar
- websocket._ssl_compat.SSLError
- websocket._ssl_compat.SSLWantReadError
- websocket._ssl_compat.SSLWantWriteError
- websocket._http.ProxyError
- websocket._http.ProxyTimeoutError
- websocket._http.ProxyConnectionError
- websocket._http.proxy_info
- websocket._handshake.handshake_response
- websocket._core.WebSocket
- websocket._app.DispatcherBase
- websocket._app.Dispatcher
- websocket._app.SSLDispatcher
- websocket._app.WrappedDispatcher
- websocket._app.WebSocketApp
- websocket._socket.sock_opt
- websocket._wsdump.VAction
- websocket._wsdump.RawInput
- websocket._wsdump.InteractiveConsole
- websocket._wsdump.NonInteractive
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_url'
    functionSourceFile: '...fuzz_url'
    functionUses: 0
    functionsReached:
    - atheris.Setup
    - atheris.instrument_all
    - '...fuzz_url.main'
    - atheris.Fuzz
    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: 2
    functionLinenumber: 22
    functionName: '...fuzz_url.TestOneInput'
    functionSourceFile: '...fuzz_url'
    functionUses: 0
    functionsReached:
    - fdp.ConsumeUnicodeNoSurrogates
    - websocket._url.parse_url
    - atheris.FuzzedDataProvider
    - urllib.parse.urlparse
    - url.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: 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.ConsumeUnicodeNoSurrogates
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 1
    IfCount: 9
    argCount: 1
    argDefaultValues: []
    argNames:
    - url
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 30
    functionName: websocket._url.parse_url
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - urllib.parse.urlparse
    - url.split
    linkageType: pythonLinkage
    raised:
    - ValueError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 32
    functionName: '...fuzz_url.main'
    functionSourceFile: '...fuzz_url'
    functionUses: 1
    functionsReached:
    - atheris.Setup
    - atheris.instrument_all
    - 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.instrument_all
    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.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: 1
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket
    functionSourceFile: websocket
    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: websocket._abnf
    functionSourceFile: websocket._abnf
    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:
    - mask_value
    - data_value
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 45
    functionName: websocket._abnf._mask
    functionSourceFile: websocket._abnf
    functionUses: 39
    functionsReached:
    - <builtin>.len
    - wsaccel.xormask.XorMaskerSimple
    - wsaccel.xormask.XorMaskerSimple.process
    - int.from_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: wsaccel.xormask.XorMaskerSimple
    functionSourceFile: wsaccel
    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: wsaccel.xormask.XorMaskerSimple.process
    functionSourceFile: wsaccel
    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: <builtin>.len
    functionSourceFile: <builtin>
    functionUses: 56
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 40
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f32632a2820>
    - <ast.Constant object at 0x7f32632a2e20>
    - <ast.Constant object at 0x7f32632a27f0>
    - <ast.Constant object at 0x7f32632a2970>
    - <ast.Name object at 0x7f32632a2190>
    - <ast.Constant object at 0x7f32632a2940>
    - <ast.Constant object at 0x7f32632a2730>
    argNames:
    - self
    - fin
    - rsv1
    - rsv2
    - rsv3
    - opcode
    - mask
    - data
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 136
    functionName: websocket._abnf.ABNF.__init__
    functionSourceFile: websocket._abnf
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 1
    IfCount: 8
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f326329a730>
    argNames:
    - self
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 152
    functionName: websocket._abnf.ABNF.validate
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF._is_valid_close_status
    - <builtin>.len
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: websocket._utils.validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 29
    functionsReached:
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator.validate
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - code
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 183
    functionName: websocket._abnf.ABNF._is_valid_close_status
    functionSourceFile: ''
    functionUses: 28
    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: 186
    functionName: websocket._abnf.ABNF.__str__
    functionSourceFile: websocket._abnf
    functionUses: 36
    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: <builtin>.str
    functionSourceFile: <builtin>
    functionUses: 43
    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 0x7f32633220a0>
    argNames:
    - data
    - opcode
    - fin
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 192
    functionName: websocket._abnf.ABNF.create_frame
    functionSourceFile: websocket._abnf
    functionUses: 36
    functionsReached:
    - data.encode
    - websocket._abnf.ABNF.__init__
    - <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: <builtin>.isinstance
    functionSourceFile: <builtin>
    functionUses: 57
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 1
    IfCount: 6
    argCount: 1
    argDefaultValues: []
    argNames:
    - self
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 212
    functionName: websocket._abnf.ABNF.format
    functionSourceFile: websocket._abnf
    functionUses: 36
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - os.urandom
    - websocket._abnf._mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._abnf.ABNF._get_masked
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.chr
    - <builtin>.len
    - struct.pack
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    - data.encode
    - mask_key.encode
    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: <builtin>.any
    functionSourceFile: <builtin>
    functionUses: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.chr
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 41
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - mask_key
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 242
    functionName: websocket._abnf.ABNF._get_masked
    functionSourceFile: websocket._abnf
    functionUses: 37
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.isinstance
    - websocket._abnf.frame_buffer.has_mask
    - <builtin>.len
    - websocket._abnf.ABNF.mask
    - data.encode
    - mask_key.encode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - mask_key
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 251
    functionName: websocket._abnf.ABNF.mask
    functionSourceFile: websocket._abnf
    functionUses: 38
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - int.from_bytes
    - websocket._abnf._mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.isinstance
    - <builtin>.len
    - data.encode
    - mask_key.encode
    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: 309
    functionName: websocket._abnf.frame_buffer.has_mask
    functionSourceFile: ''
    functionUses: 38
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: mask_key.encode
    functionSourceFile: <builtin>
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: array.array
    functionSourceFile: array
    functionUses: 39
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - recv_fn
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 278
    functionName: websocket._abnf.frame_buffer.__init__
    functionSourceFile: websocket._abnf
    functionUses: 13
    functionsReached:
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    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: 287
    functionName: websocket._abnf.frame_buffer.clear
    functionSourceFile: ''
    functionUses: 30
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 15
    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: 292
    functionName: websocket._abnf.frame_buffer.has_received_header
    functionSourceFile: websocket._abnf
    functionUses: 27
    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: 11
    functionLinenumber: 295
    functionName: websocket._abnf.frame_buffer.recv_header
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - struct.pack
    - <builtin>.min
    - websocket._logging.isEnabledForTrace
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.isinstance
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 10
    functionLinenumber: 366
    functionName: websocket._abnf.frame_buffer.recv_strict
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - struct.pack
    - <builtin>.min
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 314
    functionName: websocket._abnf.frame_buffer.has_received_length
    functionSourceFile: websocket._abnf
    functionUses: 27
    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: 11
    functionLinenumber: 317
    functionName: websocket._abnf.frame_buffer.recv_length
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - <builtin>.min
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.isinstance
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.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: struct.unpack
    functionSourceFile: struct
    functionUses: 32
    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: 329
    functionName: websocket._abnf.frame_buffer.has_received_mask
    functionSourceFile: websocket._abnf
    functionUses: 27
    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: 11
    functionLinenumber: 332
    functionName: websocket._abnf.frame_buffer.recv_mask
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - <builtin>.min
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.isinstance
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 11
    functionLinenumber: 335
    functionName: websocket._abnf.frame_buffer.recv_frame
    functionSourceFile: websocket._abnf
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - os.urandom
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.extract
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._core.WebSocket.recv_data
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.min
    - websocket._logging.isEnabledForTrace
    - websocket._core.WebSocket.send_frame
    - struct.pack
    - data.encode
    - <builtin>.isinstance
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    - data.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>.map
    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: <builtin>.sum
    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: <builtin>.min
    functionSourceFile: <builtin>
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 9
    functionLinenumber: 529
    functionName: websocket._core.WebSocket._recv
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - fire_cont_frame
    - skip_utf8_validation
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 391
    functionName: websocket._abnf.continuous_frame.__init__
    functionSourceFile: websocket._abnf
    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
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 397
    functionName: websocket._abnf.continuous_frame.validate
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 404
    functionName: websocket._abnf.continuous_frame.add
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 415
    functionName: websocket._abnf.continuous_frame.is_fire
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 418
    functionName: websocket._abnf.continuous_frame.extract
    functionSourceFile: websocket._abnf
    functionUses: 27
    functionsReached:
    - websocket._utils._validate_utf8
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils.validate_utf8
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised:
    - WebSocketPayloadException
    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: websocket._utils
    functionSourceFile: websocket._utils
    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: 26
    functionName: websocket._utils.NoLock.__enter__
    functionSourceFile: websocket._utils
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 29
    functionName: websocket._utils.NoLock.__exit__
    functionSourceFile: websocket._utils
    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:
    - utfbytes
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 77
    functionName: websocket._utils._validate_utf8
    functionSourceFile: websocket._utils
    functionUses: 30
    functionsReached:
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._utils._decode
    - wsaccel.utf8validator.Utf8Validator
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator
    functionSourceFile: wsaccel
    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: 0
    functionLinenumber: -1
    functionName: wsaccel.utf8validator.Utf8Validator.validate
    functionSourceFile: wsaccel
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - state
    - codep
    - ch
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 68
    functionName: websocket._utils._decode
    functionSourceFile: websocket._utils
    functionUses: 31
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 97
    functionName: websocket._utils.extract_err_message
    functionSourceFile: websocket._utils
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - exception
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 104
    functionName: websocket._utils.extract_error_code
    functionSourceFile: websocket._utils
    functionUses: 5
    functionsReached:
    - <builtin>.len
    - <builtin>.isinstance
    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: websocket._exceptions
    functionSourceFile: websocket._exceptions
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 6
    argDefaultValues:
    - <ast.Constant object at 0x7f32633603d0>
    - <ast.Constant object at 0x7f3263360f40>
    - <ast.Constant object at 0x7f3263360100>
    argNames:
    - self
    - message
    - status_code
    - status_message
    - resp_headers
    - resp_body
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 69
    functionName: websocket._exceptions.WebSocketBadStatusException.__init__
    functionSourceFile: websocket._exceptions
    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: <builtin>.super
    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: 0
    functionLinenumber: -1
    functionName: websocket._app
    functionSourceFile: websocket._app
    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:
    - reconnectInterval
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 41
    functionName: websocket._app.setReconnect
    functionSourceFile: websocket._app
    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
    - app
    - ping_timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 50
    functionName: websocket._app.DispatcherBase.__init__
    functionSourceFile: websocket._app
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 54
    functionName: websocket._app.DispatcherBase.timeout
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - inspect.stack
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._core.WebSocket.settimeout
    - websocket._logging.info
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._abnf.frame_buffer.recv_length
    - cookie.update
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._core.WebSocket.send_frame
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <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: time.sleep
    functionSourceFile: time
    functionUses: 13
    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: 471
    functionName: websocket._app.WebSocketApp.run_forever.check
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - time.time
    linkageType: pythonLinkage
    raised:
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f32630f5460>
    argNames:
    - reconnecting
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 403
    functionName: websocket._app.WebSocketApp.run_forever.setSock
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - <builtin>.int
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - line.decode
    - time.sleep
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - inspect.stack
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._abnf.frame_buffer.recv_length
    - cookie.update
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._core.WebSocket.send_frame
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - websocket._core.WebSocket.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 58
    functionName: websocket._app.DispatcherBase.reconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.has_mask
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._abnf.frame_buffer.recv_length
    - cookie.update
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._core.WebSocket.send_frame
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <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: inspect.stack
    functionSourceFile: inspect
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 75
    functionName: websocket._logging.info
    functionSourceFile: websocket._logging
    functionUses: 11
    functionsReached:
    - _logger.info
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 73
    functionName: websocket._app.Dispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    - selectors.DefaultSelector
    - key.lower
    - x.strip
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - sel.register
    - websocket._logging.error
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - websocket._utils.validate_utf8
    - mask_key.encode
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - websocket._abnf.ABNF._get_masked
    - v.get
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - websocket._core.WebSocket.close
    - subproto.lower
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._handshake._get_resp_headers
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <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: selectors.DefaultSelector
    functionSourceFile: selectors
    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: sel.register
    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: sel.select
    functionSourceFile: <builtin>
    functionUses: 17
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 6
    IfCount: 7
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 438
    functionName: websocket._app.WebSocketApp.run_forever.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - data.encode
    - <builtin>.isinstance
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - sel.register
    - websocket._logging.error
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - mask_key.encode
    - websocket._utils.validate_utf8
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - websocket._app.WebSocketApp.run_forever.check
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - websocket._abnf.ABNF._get_masked
    - v.get
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - websocket._core.WebSocket.close
    - subproto.lower
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._handshake._get_resp_headers
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <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: sel.close
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 15
    functionLinenumber: 91
    functionName: websocket._app.SSLDispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    - selectors.DefaultSelector
    - key.lower
    - x.strip
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - sel.register
    - websocket._logging.error
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - websocket._utils.validate_utf8
    - mask_key.encode
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.recv_header
    - inspect.stack
    - websocket._core.WebSocket.shutdown
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - websocket._abnf.ABNF._get_masked
    - v.get
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - websocket._core.WebSocket.close
    - subproto.lower
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._handshake._get_resp_headers
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sock
    - sel
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 105
    functionName: websocket._app.SSLDispatcher.select
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - sel.select
    - sock.pending
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.pending
    functionSourceFile: <builtin>
    functionUses: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - app
    - ping_timeout
    - dispatcher
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 120
    functionName: websocket._app.WrappedDispatcher.__init__
    functionSourceFile: websocket._app
    functionUses: 2
    functionsReached:
    - dispatcher.signal
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: dispatcher.signal
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 2
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - sock
    - read_callback
    - check_callback
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 16
    functionLinenumber: 126
    functionName: websocket._app.WrappedDispatcher.read
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - <builtin>.int
    - websocket._utils._decode
    - websocket._utils._validate_utf8
    - selectors.DefaultSelector
    - x.strip
    - key.lower
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - array.array
    - domain.startswith
    - struct.pack
    - <builtin>.isinstance
    - data.encode
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - sel.register
    - websocket._logging.error
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._cookiejar.SimpleCookieJar.get
    - simpleCookie.items
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - websocket._abnf.ABNF._get_masked
    - v.get
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._core.WebSocket.close
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._handshake._get_resp_headers
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - websocket._core.WebSocket.__init__
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - callback
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 18
    functionLinenumber: 130
    functionName: websocket._app.WrappedDispatcher.timeout
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - inspect.stack
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._core.WebSocket.settimeout
    - websocket._logging.info
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._abnf.frame_buffer.recv_length
    - cookie.update
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._core.WebSocket.send_frame
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - seconds
    - reconnector
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 19
    functionLinenumber: 133
    functionName: websocket._app.WrappedDispatcher.reconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - websocket._core.WebSocket.__init__
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - inspect.stack
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._app.WebSocketApp.run_forever.check
    - websocket._logging.trace
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._core.WebSocket.settimeout
    - websocket._logging.info
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._abnf.frame_buffer.recv_length
    - cookie.update
    - websocket._core.WebSocket.close
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.sorted
    - websocket._core.WebSocket.send_frame
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 16
    argDefaultValues:
    - <ast.Constant object at 0x7f3263575a90>
    - <ast.Constant object at 0x7f3263575bb0>
    - <ast.Constant object at 0x7f3263575c10>
    - <ast.Constant object at 0x7f32635754c0>
    - <ast.Constant object at 0x7f32635756a0>
    - <ast.Constant object at 0x7f3263575fd0>
    - <ast.Constant object at 0x7f3263575ee0>
    - <ast.Constant object at 0x7f3263575a60>
    - <ast.Constant object at 0x7f3263575520>
    - <ast.Constant object at 0x7f3263575fa0>
    - <ast.Constant object at 0x7f3263575d60>
    - <ast.Constant object at 0x7f3263575250>
    - <ast.Constant object at 0x7f3263854910>
    - <ast.Constant object at 0x7f3263496eb0>
    argNames:
    - self
    - url
    - header
    - on_open
    - on_message
    - on_error
    - on_close
    - on_ping
    - on_pong
    - on_cont_message
    - keep_running
    - get_mask_key
    - cookie
    - subprotocols
    - on_data
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 142
    functionName: websocket._app.WebSocketApp.__init__
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - threading.Lock
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f32632aea30>
    argNames:
    - self
    - data
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 239
    functionName: websocket._app.WebSocketApp.send
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - data.encode
    - struct.pack
    - <builtin>.isinstance
    - websocket._logging.isEnabledForTrace
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 3
    argDefaultValues:
    - <ast.Attribute object at 0x7f3263360430>
    argNames:
    - self
    - payload
    - opcode
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 6
    functionLinenumber: 270
    functionName: websocket._core.WebSocket.send
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - websocket._core.WebSocket.send
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - data.encode
    - struct.pack
    - <builtin>.isinstance
    - websocket._logging.isEnabledForTrace
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - kwargs
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 256
    functionName: websocket._app.WebSocketApp.close
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - os.urandom
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.extract
    - _logger.isEnabledFor
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.debug
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._core.WebSocket.recv_data
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.pong
    - struct.pack
    - data.encode
    - <builtin>.min
    - websocket._logging.isEnabledForError
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - websocket._abnf.continuous_frame.add
    - time.time
    - <builtin>.repr
    - websocket._logging.error
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 9
    ICount: 8
    IfCount: 6
    argCount: 4
    argDefaultValues:
    - <ast.Name object at 0x7f3262ff7ee0>
    - <ast.Constant object at 0x7f3262ff7eb0>
    - <ast.Constant object at 0x7f3262ff7e80>
    argNames:
    - self
    - status
    - reason
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 12
    functionLinenumber: 465
    functionName: websocket._core.WebSocket.close
    functionSourceFile: websocket._core
    functionUses: 13
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - os.urandom
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.frame_buffer.recv_frame
    - websocket._abnf.continuous_frame.extract
    - _logger.isEnabledFor
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.debug
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._core.WebSocket.recv_data
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.pong
    - struct.pack
    - data.encode
    - <builtin>.min
    - websocket._logging.isEnabledForError
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - websocket._abnf.continuous_frame.add
    - time.time
    - <builtin>.repr
    - websocket._logging.error
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised:
    - ValueError
    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: 265
    functionName: websocket._app.WebSocketApp._start_ping_thread
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - threading.Thread
    - threading.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: threading.Event
    functionSourceFile: threading
    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: threading.Thread
    functionSourceFile: threading
    functionUses: 14
    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: 0
    functionLinenumber: 272
    functionName: websocket._app.WebSocketApp._stop_ping_thread
    functionSourceFile: websocket._app
    functionUses: 12
    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: 8
    functionLinenumber: 279
    functionName: websocket._app.WebSocketApp._send_ping
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - payload.encode
    - websocket._logging.debug
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.ping
    - websocket._core.WebSocket.send_frame
    - data.encode
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - struct.pack
    - time.time
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 71
    functionName: websocket._logging.debug
    functionSourceFile: websocket._logging
    functionUses: 17
    functionsReached:
    - _logger.debug
    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 0x7f3263923190>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 329
    functionName: websocket._core.WebSocket.ping
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - payload.encode
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 7
    IfCount: 9
    argCount: 18
    argDefaultValues:
    - <ast.Constant object at 0x7f32632b9c40>
    - <ast.Constant object at 0x7f32632b9c70>
    - <ast.Constant object at 0x7f32632b9ca0>
    - <ast.Constant object at 0x7f32632b9cd0>
    - <ast.Constant object at 0x7f32632b9d00>
    - <ast.Constant object at 0x7f32632b9d30>
    - <ast.Constant object at 0x7f32632b9d60>
    - <ast.Constant object at 0x7f32632b9d90>
    - <ast.Constant object at 0x7f32632b9dc0>
    - <ast.Constant object at 0x7f32632b9df0>
    - <ast.Constant object at 0x7f32632b9e20>
    - <ast.Constant object at 0x7f32632b9e50>
    - <ast.Constant object at 0x7f32632b9e80>
    - <ast.Constant object at 0x7f32632b9eb0>
    - <ast.Constant object at 0x7f32632b9ee0>
    - <ast.Constant object at 0x7f32632b9f10>
    - <ast.Constant object at 0x7f32632b9f40>
    argNames:
    - self
    - sockopt
    - sslopt
    - ping_interval
    - ping_timeout
    - ping_payload
    - http_proxy_host
    - http_proxy_port
    - http_no_proxy
    - http_proxy_auth
    - http_proxy_timeout
    - skip_utf8_validation
    - host
    - origin
    - dispatcher
    - suppress_origin
    - proxy_type
    - reconnect
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 17
    functionLinenumber: 291
    functionName: websocket._app.WebSocketApp.run_forever
    functionSourceFile: websocket._app
    functionUses: 0
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - <builtin>.bool
    - line.split
    - websocket._handshake.handshake_response.__init__
    - <builtin>.int
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - urllib.parse.urlparse
    - s.lower
    - line.decode
    - time.sleep
    - base64.encodebytes.strip
    - payload.encode
    - threading.Lock
    - array.array
    - domain.startswith
    - struct.pack
    - websocket._http.read_headers
    - <builtin>.isinstance
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - data.encode
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - websocket._logging.error
    - sel.register
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - mask_key.encode
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._app.WebSocketApp.create_dispatcher
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.recv_header
    - websocket._url.parse_url
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.has_mask
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - dispatcher.signal
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - websocket._app.WebSocketApp.run_forever.check
    - r.split
    - websocket._app.WrappedDispatcher.__init__
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._core.WebSocket.settimeout
    - websocket._logging.info
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._app.DispatcherBase.__init__
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - v.get
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - subproto.lower
    - websocket._core.WebSocket.close
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - websocket._handshake._get_resp_headers
    - wsaccel.xormask.XorMaskerSimple.process
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - websocket._core.WebSocket.pong
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - websocket._core.WebSocket.__init__
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    IfCount: 2
    argCount: 1
    argDefaultValues:
    - <ast.Constant object at 0x7f32630ef0a0>
    argNames:
    - close_frame
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 13
    functionLinenumber: 374
    functionName: websocket._app.WebSocketApp.run_forever.teardown
    functionSourceFile: websocket._app
    functionUses: 11
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - os.urandom
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._core.WebSocket.shutdown
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - _logger.isEnabledFor
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._logging.debug
    - websocket._abnf.frame_buffer.has_received_mask
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._logging.trace
    - websocket._core.WebSocket.recv_data
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._core.WebSocket.send_frame
    - websocket._core.WebSocket.pong
    - struct.pack
    - <builtin>.min
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - data.encode
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - time.time
    - <builtin>.repr
    - websocket._logging.error
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - websocket._app.WebSocketApp._callback
    - data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - close_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 531
    functionName: websocket._app.WebSocketApp._get_close_args
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - <builtin>.len
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - callback
    - args
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 550
    functionName: websocket._app.WebSocketApp._callback
    functionSourceFile: websocket._app
    functionUses: 12
    functionsReached:
    - websocket._logging.error
    - _logger.error
    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: 517
    functionName: websocket._core.WebSocket.shutdown
    functionSourceFile: ''
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 8
    argDefaultValues:
    - <ast.Constant object at 0x7f3262ff0460>
    - <ast.Constant object at 0x7f3262ff0430>
    - <ast.Constant object at 0x7f3262ff0400>
    - <ast.Constant object at 0x7f3262ff03d0>
    - <ast.Constant object at 0x7f3262ff03a0>
    - <ast.Constant object at 0x7f3262ff0370>
    argNames:
    - self
    - get_mask_key
    - sockopt
    - sslopt
    - fire_cont_frame
    - enable_multithread
    - skip_utf8_validation
    - _
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 78
    functionName: websocket._core.WebSocket.__init__
    functionSourceFile: websocket._core
    functionUses: 12
    functionsReached:
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.continuous_frame.__init__
    - websocket._abnf.frame_buffer.clear
    - threading.Lock
    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: 149
    functionName: websocket._core.WebSocket.settimeout
    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: <builtin>.callable
    functionSourceFile: <builtin>
    functionUses: 11
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - url
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 203
    functionName: websocket._core.WebSocket.connect
    functionSourceFile: websocket._core
    functionUses: 11
    functionsReached:
    - websocket._core.WebSocket.connect
    - header.items
    - os.urandom
    - host.endswith
    - <builtin>.filter
    - headers.append
    - line.split
    - v.get
    - _logger.error
    - websocket._handshake.handshake_response.__init__
    - hashlib.sha1
    - _logger.debug
    - result.lower
    - subproto.lower
    - cookie.items
    - cookie.update
    - options.get
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - options.pop
    - sock.recv
    - key.lower
    - websocket._handshake._pack_hostname
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - x.strip
    - <builtin>.str
    - base64.encodebytes.decode
    - headers.extend
    - domain.lower
    - s.lower
    - base64.encodebytes
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - websocket._handshake._create_sec_websocket_key
    - base64.encodebytes.strip
    - line.decode
    - _HEADERS_TO_CHECK.items
    - domain.startswith
    - websocket._logging.trace
    - websocket._handshake._get_resp_headers
    - r.split
    - websocket._handshake.handshake
    - <builtin>.len
    - value.strip
    - websocket._cookiejar.SimpleCookieJar.add
    - <builtin>.sorted
    - websocket._logging.dump
    - <builtin>.isinstance
    - websocket._http.read_headers
    - http.cookies.SimpleCookie
    - websocket._http.proxy_info.__init__
    - websocket._logging.error
    - resp_headers.get
    - result.encode
    - headers.get
    - cookies.append
    - url.split
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 8
    IfCount: 4
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f32630f02b0>
    argNames:
    - e
    - reconnecting
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 14
    functionLinenumber: 483
    functionName: websocket._app.WebSocketApp.run_forever.handleDisconnect
    functionSourceFile: websocket._app
    functionUses: 10
    functionsReached:
    - websocket._app.WebSocketApp._start_ping_thread
    - header.items
    - websocket._abnf._mask
    - line.split
    - websocket._handshake.handshake_response.__init__
    - websocket._utils._decode
    - key.lower
    - selectors.DefaultSelector
    - x.strip
    - websocket._utils._validate_utf8
    - websocket._abnf.frame_buffer.has_received_length
    - s.lower
    - time.sleep
    - line.decode
    - base64.encodebytes.strip
    - payload.encode
    - websocket._core.WebSocket.__init__
    - threading.Lock
    - array.array
    - domain.startswith
    - struct.pack
    - data.encode
    - websocket._app.WebSocketApp._get_close_args
    - websocket._logging.isEnabledForError
    - <builtin>.isinstance
    - websocket._http.read_headers
    - websocket._app.WebSocketApp._callback
    - websocket._app.WrappedDispatcher.reconnect
    - sel.register
    - websocket._logging.error
    - result.encode
    - websocket._app.SSLDispatcher.select
    - sel.select
    - struct.unpack
    - websocket._abnf.ABNF.mask
    - sock.pending
    - websocket._core.WebSocket.connect
    - os.urandom
    - <builtin>.filter
    - headers.append
    - _logger.debug
    - options.get
    - websocket._app.DispatcherBase.timeout
    - simpleCookie.items
    - mask_key.encode
    - websocket._cookiejar.SimpleCookieJar.get
    - websocket._utils.validate_utf8
    - websocket._core.WebSocket.send
    - websocket._handshake._get_handshake_headers
    - websocket._handshake._validate
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - websocket._app.WebSocketApp._stop_ping_thread
    - websocket._abnf.frame_buffer.has_mask
    - websocket._core.WebSocket.shutdown
    - inspect.stack
    - websocket._abnf.frame_buffer.recv_header
    - base64.encodebytes.decode
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._app.WebSocketApp.run_forever.handleDisconnect
    - websocket._handshake._create_sec_websocket_key
    - websocket._abnf.continuous_frame.is_fire
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - websocket._app.WebSocketApp.run_forever.check
    - r.split
    - <builtin>.sum
    - websocket._cookiejar.SimpleCookieJar.add
    - websocket._logging.dump
    - websocket._app.WebSocketApp.run_forever.setSock
    - resp_headers.get
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._abnf.frame_buffer.__init__
    - websocket._app.Dispatcher.read
    - data.decode
    - host.endswith
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - threading.Thread
    - websocket._abnf.continuous_frame.__init__
    - cookie.items
    - websocket._logging.info
    - websocket._core.WebSocket.settimeout
    - result.lower
    - websocket._core.WebSocket.send_close
    - websocket._core.WebSocket._send
    - options.pop
    - websocket._abnf.continuous_frame.validate
    - websocket._handshake._pack_hostname
    - int.from_bytes
    - <builtin>.map
    - <builtin>.callable
    - domain.lower
    - base64.encodebytes
    - websocket._abnf.continuous_frame.extract
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._handshake.handshake
    - threading.Event
    - sel.close
    - value.strip
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - time.time
    - http.cookies.SimpleCookie
    - websocket._app.WebSocketApp.run_forever.teardown
    - websocket._abnf.ABNF.__init__
    - websocket._app.WebSocketApp.run_forever.read
    - websocket._app.DispatcherBase.reconnect
    - url.split
    - websocket._abnf.frame_buffer.recv_frame
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf.frame_buffer.clear
    - websocket._app.WrappedDispatcher.timeout
    - websocket._abnf.ABNF._get_masked
    - v.get
    - _logger.error
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - hashlib.sha1
    - websocket._core.WebSocket.close
    - subproto.lower
    - cookie.update
    - websocket._abnf.frame_buffer.recv_length
    - wsaccel.utf8validator.Utf8Validator
    - sock.recv
    - websocket._app.SSLDispatcher.read
    - websocket._abnf.ABNF.format
    - <builtin>.str
    - headers.extend
    - websocket._app.WrappedDispatcher.read
    - <builtin>.range
    - hmac.compare_digest
    - host.lower
    - _logger.isEnabledFor
    - _HEADERS_TO_CHECK.items
    - websocket._logging.debug
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._handshake._get_resp_headers
    - _logger.info
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.send_frame
    - <builtin>.sorted
    - websocket._core.WebSocket.pong
    - <builtin>.repr
    - websocket._http.proxy_info.__init__
    - headers.get
    - cookies.append
    - websocket._core.WebSocket._recv
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 15
    ICount: 7
    IfCount: 10
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f326329a8b0>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 390
    functionName: websocket._core.WebSocket.recv_data_frame
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_data
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised:
    - WebSocketProtocolException
    returnType: N/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.decode
    functionSourceFile: <builtin>
    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:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 63
    functionName: websocket._logging.error
    functionSourceFile: websocket._logging
    functionUses: 18
    functionsReached:
    - _logger.error
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.bool
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f32630e7160>
    - <ast.Constant object at 0x7f32630e7130>
    argNames:
    - self
    - ping_timeout
    - dispatcher
    - is_ssl
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 522
    functionName: websocket._app.WebSocketApp.create_dispatcher
    functionSourceFile: websocket._app
    functionUses: 1
    functionsReached:
    - websocket._app.DispatcherBase.__init__
    - dispatcher.signal
    - websocket._app.WrappedDispatcher.__init__
    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: websocket._core
    functionSourceFile: websocket._core
    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: 9
    functionLinenumber: 107
    functionName: websocket._core.WebSocket.__iter__
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 8
    functionLinenumber: 355
    functionName: websocket._core.WebSocket.recv
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 9
    functionLinenumber: 114
    functionName: websocket._core.WebSocket.__next__
    functionSourceFile: websocket._core
    functionUses: 1
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 10
    functionLinenumber: 117
    functionName: websocket._core.WebSocket.next
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._core.WebSocket.__next__
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._core.WebSocket.recv_data
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 120
    functionName: websocket._core.WebSocket.fileno
    functionSourceFile: websocket._core
    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
    - func
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 123
    functionName: websocket._core.WebSocket.set_mask_key
    functionSourceFile: websocket._core
    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: 138
    functionName: websocket._core.WebSocket.gettimeout
    functionSourceFile: websocket._core
    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: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._core.WebSocket
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <builtin>.property
    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: 164
    functionName: websocket._core.WebSocket.getsubprotocol
    functionSourceFile: websocket._core
    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: 175
    functionName: websocket._core.WebSocket.getstatus
    functionSourceFile: websocket._core
    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: 186
    functionName: websocket._core.WebSocket.getheaders
    functionSourceFile: websocket._core
    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: 195
    functionName: websocket._core.WebSocket.is_ssl
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - <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: options.get
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - options
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: websocket._http.proxy_info.__init__
    functionSourceFile: websocket._http
    functionUses: 12
    functionsReached:
    - options.get
    linkageType: pythonLinkage
    raised:
    - ProxyError
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: options.pop
    functionSourceFile: <builtin>
    functionUses: 13
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 6
    argDefaultValues: []
    argNames:
    - sock
    - url
    - hostname
    - port
    - resource
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 50
    functionName: websocket._handshake.handshake
    functionSourceFile: websocket._handshake
    functionUses: 12
    functionsReached:
    - header.items
    - os.urandom
    - host.endswith
    - <builtin>.filter
    - headers.append
    - line.split
    - v.get
    - _logger.error
    - websocket._handshake.handshake_response.__init__
    - hashlib.sha1
    - _logger.debug
    - result.lower
    - subproto.lower
    - cookie.items
    - cookie.update
    - options.get
    - simpleCookie.items
    - websocket._cookiejar.SimpleCookieJar.get
    - sock.recv
    - key.lower
    - x.strip
    - websocket._handshake._pack_hostname
    - websocket._handshake._validate
    - websocket._handshake._get_handshake_headers
    - <builtin>.str
    - base64.encodebytes.decode
    - headers.extend
    - domain.lower
    - s.lower
    - base64.encodebytes
    - hmac.compare_digest
    - host.lower
    - websocket._handshake._create_sec_websocket_key
    - base64.encodebytes.strip
    - line.decode
    - _HEADERS_TO_CHECK.items
    - domain.startswith
    - websocket._logging.trace
    - websocket._handshake._get_resp_headers
    - r.split
    - <builtin>.len
    - value.strip
    - websocket._cookiejar.SimpleCookieJar.add
    - <builtin>.sorted
    - websocket._logging.dump
    - <builtin>.isinstance
    - websocket._http.read_headers
    - http.cookies.SimpleCookie
    - websocket._logging.error
    - resp_headers.get
    - result.encode
    - headers.get
    - cookies.append
    - url.split
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/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: 12
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 287
    functionName: websocket._core.WebSocket.send_frame
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - websocket._logging.isEnabledForTrace
    - struct.pack
    - data.encode
    - <builtin>.isinstance
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 92
    functionName: websocket._logging.isEnabledForTrace
    functionSourceFile: ''
    functionUses: 36
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.repr
    functionSourceFile: <builtin>
    functionUses: 37
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 79
    functionName: websocket._logging.trace
    functionSourceFile: websocket._logging
    functionUses: 42
    functionsReached:
    - _logger.debug
    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: 7
    functionLinenumber: 526
    functionName: websocket._core.WebSocket._send
    functionSourceFile: websocket._core
    functionUses: 35
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - data.encode
    - struct.pack
    - <builtin>.isinstance
    - websocket._logging.isEnabledForTrace
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    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: 7
    functionLinenumber: 318
    functionName: websocket._core.WebSocket.send_binary
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - data.encode
    - struct.pack
    - <builtin>.isinstance
    - websocket._logging.isEnabledForTrace
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 30
    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 0x7f32632ae040>
    argNames:
    - self
    - payload
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 342
    functionName: websocket._core.WebSocket.pong
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - payload.encode
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    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 0x7f32638b3c70>
    argNames:
    - self
    - control_frame
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 8
    functionLinenumber: 372
    functionName: websocket._core.WebSocket.recv_data
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._core.WebSocket._send
    - websocket._utils._decode
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._logging.trace
    - array.array
    - wsaccel.xormask.XorMaskerSimple.process
    - websocket._core.WebSocket.recv_data
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._abnf.continuous_frame.add
    - <builtin>.sum
    - websocket._core.WebSocket.pong
    - struct.pack
    - websocket._logging.isEnabledForTrace
    - <builtin>.min
    - <builtin>.isinstance
    - websocket._core.WebSocket.send_frame
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    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: 12
    functionLinenumber: 439
    functionName: websocket._core.WebSocket.recv_frame
    functionSourceFile: websocket._core
    functionUses: 26
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - websocket._abnf._mask
    - os.urandom
    - websocket._core.WebSocket.recv_data_frame
    - websocket._core.WebSocket.recv
    - websocket._abnf.frame_buffer.clear
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - websocket._abnf.frame_buffer.recv_strict
    - _logger.debug
    - websocket._core.WebSocket.send_close
    - websocket._abnf.frame_buffer.recv_length
    - websocket._utils._decode
    - websocket._core.WebSocket._send
    - websocket._utils.validate_utf8
    - mask_key.encode
    - websocket._utils._validate_utf8
    - websocket._abnf.continuous_frame.validate
    - wsaccel.utf8validator.Utf8Validator
    - websocket._abnf.ABNF.format
    - websocket._core.WebSocket.send
    - int.from_bytes
    - wsaccel.utf8validator.Utf8Validator.validate
    - websocket._abnf.ABNF.validate
    - <builtin>.str
    - websocket._abnf.frame_buffer.recv_header
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.frame_buffer.has_received_length
    - <builtin>.map
    - websocket._abnf.frame_buffer.has_received_header
    - websocket._abnf.ABNF._is_valid_close_status
    - websocket._abnf.ABNF.create_frame
    - websocket._abnf.continuous_frame.extract
    - websocket._abnf.ABNF.mask
    - payload.encode
    - websocket._abnf.continuous_frame.is_fire
    - websocket._core.WebSocket.recv_frame
    - websocket._abnf.frame_buffer.has_received_mask
    - websocket._core.WebSocket.recv_data
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - <builtin>.sum
    - websocket._abnf.continuous_frame.add
    - websocket._core.WebSocket.pong
    - <builtin>.min
    - websocket._logging.isEnabledForTrace
    - struct.pack
    - websocket._core.WebSocket.send_frame
    - <builtin>.isinstance
    - data.encode
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.frame_buffer.recv_mask
    - websocket._core.WebSocket._recv
    - struct.unpack
    - websocket._abnf.frame_buffer.recv_frame
    - <builtin>.any
    - data.decode
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 2
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Name object at 0x7f3262ff8790>
    - <ast.Constant object at 0x7f3262ff8760>
    argNames:
    - self
    - status
    - reason
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 7
    functionLinenumber: 449
    functionName: websocket._core.WebSocket.send_close
    functionSourceFile: websocket._core
    functionUses: 27
    functionsReached:
    - wsaccel.xormask.XorMaskerSimple
    - os.urandom
    - websocket._abnf._mask
    - websocket._abnf.ABNF._get_masked
    - <builtin>.chr
    - _logger.debug
    - websocket._core.WebSocket._send
    - mask_key.encode
    - websocket._core.WebSocket.send
    - websocket._abnf.ABNF.format
    - int.from_bytes
    - <builtin>.str
    - websocket._abnf.frame_buffer.has_mask
    - websocket._abnf.ABNF.create_frame
    - array.array
    - websocket._logging.trace
    - wsaccel.xormask.XorMaskerSimple.process
    - <builtin>.len
    - websocket._abnf.ABNF.__str__
    - websocket._core.WebSocket.send_frame
    - data.encode
    - websocket._logging.isEnabledForTrace
    - <builtin>.isinstance
    - struct.pack
    - <builtin>.repr
    - websocket._abnf.ABNF.__init__
    - websocket._abnf.ABNF.mask
    - <builtin>.any
    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: 1
    functionLinenumber: 84
    functionName: websocket._logging.isEnabledForError
    functionSourceFile: websocket._logging
    functionUses: 14
    functionsReached:
    - _logger.isEnabledFor
    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: 510
    functionName: websocket._core.WebSocket.abort
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 3
    IfCount: 0
    argCount: 4
    argDefaultValues:
    - <ast.Constant object at 0x7f3262feee50>
    - <ast.Name object at 0x7f3262feee20>
    argNames:
    - url
    - timeout
    - class_
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 540
    functionName: websocket._core.create_connection
    functionSourceFile: websocket._core
    functionUses: 0
    functionsReached:
    - options.pop
    - threading.Lock
    - websocket._abnf.frame_buffer.clear
    - websock.settimeout
    - websocket._abnf.frame_buffer.__init__
    - websocket._abnf.continuous_frame.__init__
    - websock.connect
    - websocket._core.WebSocket.__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: websock.settimeout
    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: websock.connect
    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: 2
    functionLinenumber: -1
    functionName: websocket._handshake
    functionSourceFile: websocket._handshake
    functionUses: 0
    functionsReached:
    - websocket._cookiejar.SimpleCookieJar.__init__
    - <builtin>.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: 1
    functionLinenumber: 26
    functionName: websocket._cookiejar.SimpleCookieJar.__init__
    functionSourceFile: websocket._cookiejar
    functionUses: 1
    functionsReached:
    - <builtin>.dict
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 4
    argDefaultValues: []
    argNames:
    - self
    - status
    - headers
    - subprotocol
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 43
    functionName: websocket._handshake.handshake_response.__init__
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - http.cookies.SimpleCookie
    - domain.startswith
    - v.get
    - headers.get
    - cookie.update
    - domain.lower
    - websocket._cookiejar.SimpleCookieJar.add
    - simpleCookie.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: headers.get
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 29
    functionName: websocket._cookiejar.SimpleCookieJar.add
    functionSourceFile: websocket._cookiejar
    functionUses: 14
    functionsReached:
    - http.cookies.SimpleCookie
    - domain.startswith
    - v.get
    - cookie.update
    - domain.lower
    - simpleCookie.items
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 18
    ICount: 13
    IfCount: 12
    argCount: 5
    argDefaultValues: []
    argNames:
    - resource
    - url
    - host
    - port
    - options
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 75
    functionName: websocket._handshake._get_handshake_headers
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - host.lower
    - websocket._handshake._pack_hostname
    - websocket._handshake._create_sec_websocket_key
    - header.items
    - os.urandom
    - host.endswith
    - <builtin>.filter
    - headers.append
    - <builtin>.isinstance
    - base64.encodebytes.decode
    - cookies.append
    - headers.extend
    - cookie.items
    - url.split
    - base64.encodebytes
    - options.get
    - <builtin>.sorted
    - websocket._cookiejar.SimpleCookieJar.get
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 2
    argDefaultValues: []
    argNames:
    - title
    - message
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 56
    functionName: websocket._logging.dump
    functionSourceFile: websocket._logging
    functionUses: 15
    functionsReached:
    - _logger.debug
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Name object at 0x7f3263386b20>
    argNames:
    - sock
    - success_statuses
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 142
    functionName: websocket._handshake._get_resp_headers
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - key.lower
    - line.decode
    - <builtin>.len
    - websocket._logging.trace
    - line.split
    - resp_headers.get
    - headers.get
    - _logger.debug
    - sock.recv
    - value.strip
    - <builtin>.int
    - websocket._http.read_headers
    linkageType: pythonLinkage
    raised:
    - WebSocketBadStatusException
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - headers
    - key
    - subprotocols
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 160
    functionName: websocket._handshake._validate
    functionSourceFile: websocket._handshake
    functionUses: 13
    functionsReached:
    - hmac.compare_digest
    - x.strip
    - base64.encodebytes.strip
    - _HEADERS_TO_CHECK.items
    - r.split
    - <builtin>.str
    - websocket._logging.error
    - _logger.error
    - result.encode
    - headers.get
    - hashlib.sha1
    - result.lower
    - subproto.lower
    - s.lower
    - base64.encodebytes
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 67
    functionName: websocket._handshake._pack_hostname
    functionSourceFile: websocket._handshake
    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: headers.append
    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: url.split
    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: 1
    functionLinenumber: 195
    functionName: websocket._handshake._create_sec_websocket_key
    functionSourceFile: websocket._handshake
    functionUses: 14
    functionsReached:
    - base64.encodebytes.decode
    - base64.encodebytes
    - 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: header.items
    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: headers.extend
    functionSourceFile: <builtin>
    functionUses: 14
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 1
    IfCount: 2
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - host
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 53
    functionName: websocket._cookiejar.SimpleCookieJar.get
    functionSourceFile: websocket._cookiejar
    functionUses: 14
    functionsReached:
    - host.lower
    - host.endswith
    - <builtin>.filter
    - cookies.append
    - cookie.items
    - <builtin>.sorted
    linkageType: pythonLinkage
    raised: []
    returnType: N/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>.filter
    functionSourceFile: <builtin>
    functionUses: 15
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 8
    ICount: 3
    IfCount: 5
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 309
    functionName: websocket._http.read_headers
    functionSourceFile: websocket._http
    functionUses: 16
    functionsReached:
    - key.lower
    - line.decode
    - websocket._logging.trace
    - line.split
    - headers.get
    - _logger.debug
    - <builtin>.len
    - value.strip
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/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.get
    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: <builtin>.int
    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: sock.recv
    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: _HEADERS_TO_CHECK.items
    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: x.strip
    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: r.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: subproto.lower
    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: s.lower
    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: result.lower
    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: result.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: hashlib.sha1
    functionSourceFile: hashlib
    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: base64.encodebytes
    functionSourceFile: base64
    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: base64.encodebytes.strip
    functionSourceFile: base64
    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: hmac.compare_digest
    functionSourceFile: hmac
    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: base64.encodebytes.decode
    functionSourceFile: base64
    functionUses: 15
    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: websocket._http
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 3
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 71
    functionName: websocket._http._start_proxied_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - sslopt.get
    - context.load_cert_chain
    - os.path.isdir
    - <builtin>.dict
    - context.set_ecdh_curve
    - context.set_ciphers
    - context.wrap_socket
    - websocket._http._ssl_socket
    - websocket._url.parse_url
    - os.environ.get
    - urllib.parse.urlparse
    - os.path.isfile
    - websocket._http._wrap_sni_socket
    - ssl.SSLContext
    - python_socks.sync.Proxy.create
    - <builtin>.hasattr
    - context.load_verify_locations
    - sslopt.update
    - user_sslopt.get
    - url.split
    - ws_proxy.connect
    - context.load_default_certs
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: python_socks.sync.Proxy.create
    functionSourceFile: python_socks
    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: ws_proxy.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 3
    argDefaultValues: []
    argNames:
    - sock
    - user_sslopt
    - hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 259
    functionName: websocket._http._ssl_socket
    functionSourceFile: websocket._http
    functionUses: 2
    functionsReached:
    - user_sslopt.get
    - sslopt.get
    - <builtin>.hasattr
    - context.set_ciphers
    - context.wrap_socket
    - context.load_cert_chain
    - context.load_verify_locations
    - os.environ.get
    - os.path.isfile
    - websocket._http._wrap_sni_socket
    - context.set_ecdh_curve
    - ssl.SSLContext
    - os.path.isdir
    - <builtin>.dict
    - context.load_default_certs
    - sslopt.update
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 1
    IfCount: 7
    argCount: 4
    argDefaultValues: []
    argNames:
    - url
    - options
    - proxy
    - socket
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 5
    functionLinenumber: 109
    functionName: websocket._http.connect
    functionSourceFile: websocket._http
    functionUses: 0
    functionsReached:
    - sslopt.get
    - websocket._url._is_address_in_network
    - websocket._url.get_proxy_info
    - line.split
    - context.load_cert_chain
    - sock.setsockopt
    - _logger.debug
    - v.split
    - urllib.parse.unquote
    - websocket._url._is_subnet_address
    - os.path.isdir
    - sock.close
    - <builtin>.dict
    - env_key.upper
    - context.set_ecdh_curve
    - key.lower
    - context.set_ciphers
    - context.wrap_socket
    - websocket._url._is_no_proxy_host
    - websocket._http._ssl_socket
    - <builtin>.str
    - websocket._http._open_socket
    - websocket._url.parse_url
    - os.environ.get
    - hostname.endswith
    - os.path.isfile
    - urllib.parse.urlparse
    - websocket._http._wrap_sni_socket
    - ssl.SSLContext
    - websocket._http._start_proxied_socket
    - base64.encodebytes
    - python_socks.sync.Proxy.create
    - websocket._url._is_ip_address
    - base64.encodebytes.strip
    - line.decode
    - <builtin>.hasattr
    - websocket._logging.debug
    - domain.startswith
    - websocket._logging.trace
    - context.load_verify_locations
    - <builtin>.any
    - net.split
    - socket.socket
    - <builtin>.len
    - value.strip
    - websocket._logging.dump
    - websocket._http.read_headers
    - sslopt.update
    - user_sslopt.get
    - socket.getaddrinfo
    - sock.connect
    - sock.settimeout
    - context.load_default_certs
    - websocket._http._tunnel
    - auth_str.encode
    - headers.get
    - socket.inet_aton
    - url.split
    - ws_proxy.connect
    - struct.unpack
    - hostname.split
    - websocket._http._get_addrinfo_list
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 0
    IfCount: 1
    argCount: 4
    argDefaultValues: []
    argNames:
    - hostname
    - port
    - is_secure
    - proxy
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 146
    functionName: websocket._http._get_addrinfo_list
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - websocket._url._is_address_in_network
    - websocket._url.get_proxy_info
    - v.split
    - urllib.parse.unquote
    - websocket._url._is_subnet_address
    - env_key.upper
    - websocket._url._is_no_proxy_host
    - os.environ.get
    - hostname.endswith
    - urllib.parse.urlparse
    - websocket._url._is_ip_address
    - domain.startswith
    - net.split
    - socket.getaddrinfo
    - socket.inet_aton
    - struct.unpack
    - hostname.split
    - <builtin>.any
    - <builtin>.int
    linkageType: pythonLinkage
    raised:
    - WebSocketAddressException
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 5
    IfCount: 1
    argCount: 3
    argDefaultValues: []
    argNames:
    - addrinfo_list
    - sockopt
    - timeout
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 169
    functionName: websocket._http._open_socket
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - sock.connect
    - sock.settimeout
    - <builtin>.str
    - sock.setsockopt
    - socket.socket
    - sock.close
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 3
    IfCount: 3
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - host
    - port
    - auth
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 280
    functionName: websocket._http._tunnel
    functionSourceFile: websocket._http
    functionUses: 1
    functionsReached:
    - key.lower
    - line.decode
    - base64.encodebytes.strip
    - websocket._logging.debug
    - websocket._logging.trace
    - line.split
    - auth_str.encode
    - headers.get
    - _logger.debug
    - <builtin>.int
    - <builtin>.len
    - value.strip
    - base64.encodebytes
    - websocket._logging.dump
    - websocket._http.read_headers
    linkageType: pythonLinkage
    raised:
    - WebSocketProxyException
    returnType: N/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: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 1
    IfCount: 3
    argCount: 7
    argDefaultValues:
    - <ast.Constant object at 0x7f32638b3f40>
    - <ast.Constant object at 0x7f3263575fd0>
    - <ast.Constant object at 0x7f3263575a90>
    - <ast.Constant object at 0x7f3263575640>
    - <ast.Constant object at 0x7f3263575e50>
    argNames:
    - hostname
    - is_secure
    - proxy_host
    - proxy_port
    - proxy_auth
    - no_proxy
    - proxy_type
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 125
    functionName: websocket._url.get_proxy_info
    functionSourceFile: websocket._url
    functionUses: 2
    functionsReached:
    - websocket._url._is_ip_address
    - websocket._url._is_address_in_network
    - websocket._url._is_no_proxy_host
    - domain.startswith
    - os.environ.get
    - net.split
    - hostname.endswith
    - socket.inet_aton
    - urllib.parse.urlparse
    - v.split
    - urllib.parse.unquote
    - websocket._url._is_subnet_address
    - struct.unpack
    - hostname.split
    - <builtin>.int
    - <builtin>.any
    - env_key.upper
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.getaddrinfo
    functionSourceFile: socket
    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: socket.socket
    functionSourceFile: socket
    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: sock.settimeout
    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: sock.setsockopt
    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: sock.connect
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 14
    ICount: 6
    IfCount: 9
    argCount: 4
    argDefaultValues: []
    argNames:
    - sock
    - sslopt
    - hostname
    - check_hostname
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 209
    functionName: websocket._http._wrap_sni_socket
    functionSourceFile: websocket._http
    functionUses: 3
    functionsReached:
    - sslopt.get
    - context.set_ciphers
    - <builtin>.hasattr
    - context.wrap_socket
    - context.load_cert_chain
    - context.load_verify_locations
    - os.environ.get
    - ssl.SSLContext
    - context.set_ecdh_curve
    - context.load_default_certs
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: sslopt.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: ssl.SSLContext
    functionSourceFile: ssl
    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.environ.get
    functionSourceFile: os
    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: context.load_verify_locations
    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>.hasattr
    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: context.load_default_certs
    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: context.load_cert_chain
    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: context.set_ciphers
    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: context.set_ecdh_curve
    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: context.wrap_socket
    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>.dict
    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: sslopt.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: os.path.isfile
    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: user_sslopt.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: os.path.isdir
    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: auth_str.encode
    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: line.decode
    functionSourceFile: <builtin>
    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: line.split
    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: key.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: value.strip
    functionSourceFile: <builtin>
    functionUses: 17
    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: websocket._ssl_compat
    functionSourceFile: websocket._ssl_compat
    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: websocket._cookiejar
    functionSourceFile: websocket._cookiejar
    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: http.cookies.SimpleCookie
    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: simpleCookie.items
    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: v.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: domain.startswith
    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: cookie.update
    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: domain.lower
    functionSourceFile: <builtin>
    functionUses: 16
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 0
    IfCount: 3
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - set_cookie
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 42
    functionName: websocket._cookiejar.SimpleCookieJar.set
    functionSourceFile: websocket._cookiejar
    functionUses: 0
    functionsReached:
    - http.cookies.SimpleCookie
    - domain.startswith
    - v.get
    - domain.lower
    - simpleCookie.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: host.lower
    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: host.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: cookies.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: cookie.items
    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: <builtin>.sorted
    functionSourceFile: <builtin>
    functionUses: 15
    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: websocket._logging
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.addHandler
    - logging.NullHandler
    - logging.getLogger
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - record
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 27
    functionName: websocket._logging.NullHandler.emit
    functionSourceFile: websocket._logging
    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: logging.NullHandler
    functionSourceFile: logging
    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.addHandler
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 3
    argDefaultValues:
    - <ast.Call object at 0x7f3263322340>
    - <ast.Constant object at 0x7f3263322c10>
    argNames:
    - traceable
    - handler
    - level
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 38
    functionName: websocket._logging.enableTrace
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - <builtin>.getattr
    - _logger.addHandler
    - _logger.setLevel
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 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: _logger.setLevel
    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: 45
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.error
    functionSourceFile: <builtin>
    functionUses: 19
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 1
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - msg
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 67
    functionName: websocket._logging.warning
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.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: _logger.warning
    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.info
    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: _logger.isEnabledFor
    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: 1
    functionLinenumber: 88
    functionName: websocket._logging.isEnabledForDebug
    functionSourceFile: websocket._logging
    functionUses: 0
    functionsReached:
    - _logger.isEnabledFor
    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: websocket._url
    functionSourceFile: websocket._url
    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: urllib.parse.urlparse
    functionSourceFile: urllib
    functionUses: 9
    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: 79
    functionName: websocket._url._is_ip_address
    functionSourceFile: websocket._url
    functionUses: 5
    functionsReached:
    - socket.inet_aton
    linkageType: pythonLinkage
    raised: []
    returnType: N/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_aton
    functionSourceFile: socket
    functionUses: 7
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 1
    argDefaultValues: []
    argNames:
    - hostname
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 88
    functionName: websocket._url._is_subnet_address
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - websocket._url._is_ip_address
    - socket.inet_aton
    - <builtin>.int
    - hostname.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: hostname.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: 2
    argDefaultValues: []
    argNames:
    - ip
    - net
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: websocket._url._is_address_in_network
    functionSourceFile: websocket._url
    functionUses: 4
    functionsReached:
    - struct.unpack
    - net.split
    - socket.inet_aton
    - <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: net.split
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 11
    ICount: 0
    IfCount: 7
    argCount: 2
    argDefaultValues: []
    argNames:
    - hostname
    - no_proxy
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 105
    functionName: websocket._url._is_no_proxy_host
    functionSourceFile: websocket._url
    functionUses: 3
    functionsReached:
    - websocket._url._is_ip_address
    - websocket._url._is_address_in_network
    - domain.startswith
    - os.environ.get
    - net.split
    - hostname.endswith
    - socket.inet_aton
    - v.split
    - websocket._url._is_subnet_address
    - struct.unpack
    - hostname.split
    - <builtin>.any
    - <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: v.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: hostname.endswith
    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: env_key.upper
    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: urllib.parse.unquote
    functionSourceFile: urllib
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 5
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: -1
    functionName: websocket._socket
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - <builtin>.hasattr
    - DEFAULT_SOCKET_OPTION.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: DEFAULT_SOCKET_OPTION.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 3
    argDefaultValues: []
    argNames:
    - self
    - sockopt
    - sslopt
    argTypes:
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 48
    functionName: websocket._socket.sock_opt.__init__
    functionSourceFile: websocket._socket
    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:
    - timeout
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: 58
    functionName: websocket._socket.setdefaulttimeout
    functionSourceFile: websocket._socket
    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: 71
    functionName: websocket._socket.getdefaulttimeout
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - bufsize
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 83
    functionName: websocket._socket.recv
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    - sock.gettimeout
    - <builtin>.isinstance
    - websocket._utils.extract_error_code
    - websocket._socket.recv._recv
    - sel.close
    - websocket._utils.extract_err_message
    - sel.select
    - sock.recv
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    IfCount: 2
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 87
    functionName: websocket._socket.recv._recv
    functionSourceFile: websocket._socket
    functionUses: 2
    functionsReached:
    - selectors.DefaultSelector
    - <builtin>.len
    - sel.register
    - sock.gettimeout
    - websocket._utils.extract_error_code
    - <builtin>.isinstance
    - sel.close
    - sel.select
    - sock.recv
    linkageType: pythonLinkage
    raised: []
    returnType: N/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: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 1
    IfCount: 1
    argCount: 1
    argDefaultValues: []
    argNames:
    - sock
    argTypes:
    - N/A
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: 130
    functionName: websocket._socket.recv_line
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - selectors.DefaultSelector
    - <builtin>.len
    - line.append
    - sel.register
    - sock.gettimeout
    - websocket._utils.extract_error_code
    - <builtin>.isinstance
    - websocket._socket.recv._recv
    - sel.close
    - websocket._utils.extract_err_message
    - sel.select
    - websocket._socket.recv
    - sock.recv
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.append
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 0
    IfCount: 4
    argCount: 2
    argDefaultValues: []
    argNames:
    - sock
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 140
    functionName: websocket._socket.send
    functionSourceFile: websocket._socket
    functionUses: 0
    functionsReached:
    - selectors.DefaultSelector
    - <builtin>.len
    - sock.send
    - sel.register
    - sock.gettimeout
    - websocket._socket.send._send
    - websocket._utils.extract_error_code
    - sel.close
    - websocket._utils.extract_err_message
    - sel.select
    - data.encode
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised:
    - WebSocketConnectionClosedException
    - WebSocketTimeoutException
    returnType: N/A
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 5
    ICount: 2
    IfCount: 3
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 147
    functionName: websocket._socket.send._send
    functionSourceFile: websocket._socket
    functionUses: 1
    functionsReached:
    - selectors.DefaultSelector
    - <builtin>.len
    - sock.send
    - sel.register
    - sock.gettimeout
    - websocket._utils.extract_error_code
    - sel.close
    - sel.select
    - <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: sock.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 2
    ICount: 3
    IfCount: 1
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 4
    functionLinenumber: -1
    functionName: websocket._wsdump
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - thread.start
    - websocket._wsdump.main
    - <builtin>.list
    - threading.Thread
    - websocket._wsdump.RawInput.raw_input
    - websocket._wsdump.get_encoding
    - websocket._wsdump.InteractiveConsole.read
    - <builtin>.getattr
    - websocket.create_connection
    - parser.parse_args
    - <builtin>.map
    - urllib.parse.urlparse
    - time.sleep
    - line.decode
    - websocket._wsdump.parse_args
    - argparse.ArgumentParser
    - args.headers.split
    - code.InteractiveConsole.__init__
    - websocket.enableTrace
    - websocket._wsdump.NonInteractive.read
    - <builtin>.input
    - <builtin>.isinstance
    - time.time
    - ws.send
    - <builtin>.print
    - line.encode
    - encoding.lower
    - parser.add_argument
    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: 40
    functionName: websocket._wsdump.get_encoding
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - <builtin>.getattr
    - encoding.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: encoding.lower
    functionSourceFile: <builtin>
    functionUses: 2
    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 0x7f32636b09d0>
    argNames:
    - self
    - parser
    - args
    - values
    - option_string
    argTypes:
    - N/A
    - N/A
    - N/A
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 54
    functionName: websocket._wsdump.VAction.__call__
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - <builtin>.setattr
    - values.count
    - <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: values.count
    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>.setattr
    functionSourceFile: <builtin>
    functionUses: 1
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 11
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 64
    functionName: websocket._wsdump.parse_args
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - parser.add_argument
    - parser.parse_args
    - 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: 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: parser.add_argument
    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: parser.parse_args
    functionSourceFile: <builtin>
    functionUses: 3
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 0
    IfCount: 2
    argCount: 2
    argDefaultValues:
    - <ast.Constant object at 0x7f32638b31f0>
    argNames:
    - self
    - prompt
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 96
    functionName: websocket._wsdump.RawInput.raw_input
    functionSourceFile: websocket._wsdump
    functionUses: 4
    functionsReached:
    - <builtin>.input
    - line.decode
    - line.encode
    - <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: <builtin>.input
    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: line.encode
    functionSourceFile: <builtin>
    functionUses: 5
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 4
    IfCount: 0
    argCount: 2
    argDefaultValues: []
    argNames:
    - self
    - data
    argTypes:
    - N/A
    - N/A
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 109
    functionName: websocket._wsdump.InteractiveConsole.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/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.write
    functionSourceFile: sys
    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: sys.stdout.flush
    functionSourceFile: sys
    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: 2
    functionLinenumber: 116
    functionName: websocket._wsdump.InteractiveConsole.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - line.decode
    - line.encode
    - <builtin>.input
    - websocket._wsdump.RawInput.raw_input
    - <builtin>.isinstance
    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: 122
    functionName: websocket._wsdump.NonInteractive.write
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - sys.stdout.write
    - sys.stdout.flush
    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: 127
    functionName: websocket._wsdump.NonInteractive.read
    functionSourceFile: websocket._wsdump
    functionUses: 2
    functionsReached:
    - line.decode
    - line.encode
    - <builtin>.input
    - websocket._wsdump.RawInput.raw_input
    - <builtin>.isinstance
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 6
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 3
    functionLinenumber: 131
    functionName: websocket._wsdump.main
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - thread.start
    - <builtin>.list
    - threading.Thread
    - websocket._wsdump.RawInput.raw_input
    - websocket._wsdump.InteractiveConsole.read
    - websocket.create_connection
    - parser.parse_args
    - <builtin>.map
    - urllib.parse.urlparse
    - time.sleep
    - line.decode
    - websocket._wsdump.parse_args
    - argparse.ArgumentParser
    - args.headers.split
    - code.InteractiveConsole.__init__
    - websocket.enableTrace
    - websocket._wsdump.NonInteractive.read
    - <builtin>.input
    - <builtin>.isinstance
    - time.time
    - ws.send
    - <builtin>.print
    - line.encode
    - parser.add_argument
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: websocket.enableTrace
    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: args.headers.split
    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>.list
    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: websocket.create_connection
    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: code.InteractiveConsole.__init__
    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: <builtin>.print
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 7
    ICount: 2
    IfCount: 4
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 1
    functionLinenumber: 157
    functionName: websocket._wsdump.main.recv
    functionSourceFile: websocket._wsdump
    functionUses: 1
    functionsReached:
    - ws.recv_frame
    - ws.pong
    - ws.send_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: ws.recv_frame
    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: ws.send_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: ws.pong
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 12
    ICount: 2
    IfCount: 8
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 2
    functionLinenumber: 175
    functionName: websocket._wsdump.main.recv_ws
    functionSourceFile: websocket._wsdump
    functionUses: 0
    functionsReached:
    - websocket._wsdump.NonInteractive.write
    - zlib.decompress
    - time.time
    - websocket._wsdump.main.recv
    - <builtin>.repr
    - ws.recv_frame
    - ws.pong
    - <builtin>.str
    - <builtin>.isinstance
    - gzip.decompress
    - websocket._wsdump.InteractiveConsole.write
    - ws.send_close
    - <builtin>.len
    - sys.stdout.write
    - websocket.ABNF.OPCODE_MAP.get
    - sys.stdout.flush
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 1
    ICount: 0
    IfCount: 0
    argCount: 0
    argDefaultValues: []
    argNames: []
    argTypes: []
    constantsTouched: []
    functionDepth: 0
    functionLinenumber: -1
    functionName: gzip.decompress
    functionSourceFile: gzip
    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: zlib.decompress
    functionSourceFile: zlib
    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: websocket.ABNF.OPCODE_MAP.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: thread.start
    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: ws.send
    functionSourceFile: <builtin>
    functionUses: 2
    functionsReached: []
    linkageType: pythonLinkage
    raised: []
    returnType: N/A
  Function list name: All functions
Function coverage:
  '...fuzz_url':
  - 38
  - 39
  '...fuzz_url.TestOneInput':
  - 25
  - 23
  '...fuzz_url.main':
  - 33
  - 34
  - 35
  websocket:
  - 1
  websocket._abnf:
  - 12
  websocket._abnf.ABNF:
  - 103
  websocket._abnf.ABNF.__init__:
  - 138
  - 147
  websocket._abnf.ABNF.__str__:
  - 187
  - 188
  - 189
  websocket._abnf.ABNF._get_masked:
  - 243
  - 245
  - 246
  websocket._abnf.ABNF.create_frame:
  - 208
  - 193
  - 210
  - 207
  websocket._abnf.ABNF.format:
  - 224
  - 227
  - 228
  - 229
  - 230
  - 231
  - 233
  - 234
  - 236
  - 239
  - 240
  - 213
  - 216
  - 218
  - 220
  - 221
  websocket._abnf.ABNF.mask:
  - 262
  - 265
  - 266
  - 268
  - 269
  - 271
  - 252
  websocket._abnf.ABNF.validate:
  - 160
  - 163
  - 166
  - 169
  - 170
  - 171
  - 173
  - 175
  - 179
  - 153
  websocket._abnf._mask:
  - 39
  - 46
  - 47
  - 48
  - 49
  websocket._abnf.continuous_frame.add:
  - 408
  - 412
  - 405
  websocket._abnf.continuous_frame.extract:
  - 422
  websocket._abnf.continuous_frame.validate:
  - 400
  - 398
  websocket._abnf.frame_buffer.__init__:
  - 284
  - 285
  websocket._abnf.frame_buffer.has_mask:
  - 310
  websocket._abnf.frame_buffer.recv_frame:
  - 354
  - 355
  - 356
  - 359
  - 361
  - 362
  - 339
  - 340
  - 344
  - 345
  - 349
  - 350
  websocket._abnf.frame_buffer.recv_header:
  - 296
  websocket._abnf.frame_buffer.recv_length:
  - 320
  - 321
  - 322
  - 323
  - 324
  - 325
  websocket._abnf.frame_buffer.recv_mask:
  - 333
  websocket._abnf.frame_buffer.recv_strict:
  - 367
  - 375
  - 376
  - 377
  - 379
  - 381
  websocket._app:
  - 17
  websocket._app.Dispatcher:
  - 70
  websocket._app.Dispatcher.read:
  - 74
  - 75
  - 78
  - 79
  - 80
  - 82
  - 84
  websocket._app.DispatcherBase:
  - 47
  websocket._app.DispatcherBase.reconnect:
  - 65
  - 60
  - 61
  - 62
  - 63
  websocket._app.DispatcherBase.timeout:
  - 56
  - 55
  websocket._app.SSLDispatcher:
  - 88
  websocket._app.SSLDispatcher.read:
  - 97
  - 98
  - 99
  - 101
  - 103
  - 93
  - 94
  websocket._app.SSLDispatcher.select:
  - 112
  - 107
  - 110
  websocket._app.WebSocketApp:
  - 138
  websocket._app.WebSocketApp.__init__:
  - 237
  - 150
  websocket._app.WebSocketApp._callback:
  - 551
  - 553
  - 556
  - 557
  - 558
  websocket._app.WebSocketApp._get_close_args:
  - 544
  - 538
  - 532
  - 542
  websocket._app.WebSocketApp._send_ping:
  - 289
  - 280
  - 282
  - 283
  - 284
  - 286
  - 287
  websocket._app.WebSocketApp._start_ping_thread:
  - 267
  - 268
  - 270
  websocket._app.WebSocketApp._stop_ping_thread:
  - 273
  - 274
  - 275
  - 276
  websocket._app.WebSocketApp.close:
  - 257
  - 261
  - 262
  websocket._app.WebSocketApp.create_dispatcher:
  - 523
  - 524
  - 526
  - 527
  - 529
  websocket._app.WebSocketApp.run_forever:
  - 353
  - 513
  - 514
  - 356
  - 516
  - 358
  - 518
  - 360
  - 362
  - 300
  - 364
  - 366
  - 503
  - 504
  - 507
  - 508
  - 510
  - 511
  websocket._app.WebSocketApp.run_forever.check:
  - 472
  - 473
  - 477
  websocket._app.WebSocketApp.run_forever.handleDisconnect:
  - 485
  - 486
  - 487
  - 489
  - 490
  - 494
  - 495
  - 496
  - 497
  - 498
  - 500
  - 501
  websocket._app.WebSocketApp.run_forever.read:
  - 439
  - 440
  - 443
  - 445
  - 446
  - 450
  - 451
  - 452
  - 453
  - 454
  - 455
  - 456
  - 457
  - 458
  - 460
  - 464
  - 465
  - 466
  - 467
  websocket._app.WebSocketApp.run_forever.setSock:
  - 416
  - 418
  - 427
  - 429
  - 430
  - 432
  - 434
  - 404
  - 405
  - 436
  - 407
  - 413
  websocket._app.WebSocketApp.run_forever.teardown:
  - 388
  - 392
  - 394
  - 395
  - 396
  - 401
  - 375
  websocket._app.WebSocketApp.send:
  - 240
  - 252
  websocket._app.WrappedDispatcher:
  - 117
  websocket._app.WrappedDispatcher.__init__:
  - 124
  websocket._app.WrappedDispatcher.read:
  - 128
  - 127
  websocket._app.WrappedDispatcher.reconnect:
  - 134
  websocket._app.WrappedDispatcher.timeout:
  - 131
  websocket._cookiejar:
  - 5
  websocket._cookiejar.SimpleCookieJar.__init__:
  - 27
  websocket._cookiejar.SimpleCookieJar.add:
  - 33
  - 34
  - 35
  - 36
  - 38
  - 39
  - 40
  - 30
  - 31
  websocket._cookiejar.SimpleCookieJar.get:
  - 64
  - 65
  - 54
  - 58
  - 59
  - 60
  - 61
  - 63
  websocket._cookiejar.SimpleCookieJar.set:
  - 43
  - 44
  - 46
  - 47
  - 48
  - 49
  - 51
  websocket._core:
  - 18
  websocket._core.WebSocket:
  - 162
  - 41
  - 201
  - 173
  - 184
  websocket._core.WebSocket.__init__:
  - 96
  - 97
  - 100
  - 101
  - 102
  - 104
  - 105
  - 81
  - 89
  websocket._core.WebSocket.__iter__:
  - 112
  - 108
  websocket._core.WebSocket.__next__:
  - 115
  websocket._core.WebSocket._recv:
  - 531
  - 533
  - 534
  websocket._core.WebSocket._send:
  - 527
  websocket._core.WebSocket.abort:
  - 514
  - 515
  - 511
  websocket._core.WebSocket.close:
  - 466
  - 479
  - 480
  - 485
  - 486
  - 487
  - 488
  - 489
  - 491
  - 492
  - 494
  - 495
  - 496
  - 497
  - 498
  - 499
  - 503
  - 504
  - 508
  websocket._core.WebSocket.connect:
  - 256
  - 257
  - 259
  - 260
  - 261
  - 262
  - 265
  - 266
  - 204
  - 250
  - 251
  - 252
  - 255
  websocket._core.WebSocket.fileno:
  - 121
  websocket._core.WebSocket.getheaders:
  - 187
  - 190
  websocket._core.WebSocket.getstatus:
  - 176
  - 179
  websocket._core.WebSocket.getsubprotocol:
  - 168
  - 165
  websocket._core.WebSocket.gettimeout:
  - 139
  websocket._core.WebSocket.is_ssl:
  - 197
  websocket._core.WebSocket.next:
  - 118
  websocket._core.WebSocket.ping:
  - 330
  - 339
  - 340
  - 338
  websocket._core.WebSocket.pong:
  - 352
  - 353
  - 351
  - 343
  websocket._core.WebSocket.recv:
  - 356
  - 364
  - 365
  - 366
  - 367
  websocket._core.WebSocket.recv_data:
  - 387
  - 373
  websocket._core.WebSocket.recv_data_frame:
  - 391
  - 408
  - 409
  - 410
  - 411
  - 412
  - 417
  - 418
  - 419
  - 421
  - 422
  - 424
  - 425
  - 427
  - 428
  - 429
  - 433
  - 435
  - 436
  websocket._core.WebSocket.recv_frame:
  - 440
  - 447
  websocket._core.WebSocket.send:
  - 284
  - 285
  - 271
  websocket._core.WebSocket.send_binary:
  - 327
  - 319
  websocket._core.WebSocket.send_close:
  - 450
  - 460
  - 463
  websocket._core.WebSocket.send_frame:
  - 288
  - 304
  - 306
  - 307
  - 308
  - 309
  - 310
  - 313
  websocket._core.WebSocket.set_mask_key:
  - 124
  websocket._core.WebSocket.settimeout:
  - 160
  - 150
  - 159
  websocket._core.WebSocket.shutdown:
  - 521
  - 522
  - 518
  websocket._core.create_connection:
  - 609
  - 610
  - 605
  - 600
  - 601
  - 602
  - 603
  - 604
  - 541
  websocket._exceptions:
  - 1
  websocket._exceptions.WebSocketAddressException:
  - 77
  websocket._exceptions.WebSocketBadStatusException:
  - 65
  websocket._exceptions.WebSocketBadStatusException.__init__:
  - 70
  websocket._exceptions.WebSocketConnectionClosedException:
  - 43
  websocket._exceptions.WebSocketException:
  - 22
  websocket._exceptions.WebSocketPayloadException:
  - 36
  websocket._exceptions.WebSocketProtocolException:
  - 29
  websocket._exceptions.WebSocketProxyException:
  - 58
  websocket._exceptions.WebSocketTimeoutException:
  - 51
  websocket._handshake:
  - 1
  - 38
  websocket._handshake._create_sec_websocket_key:
  - 196
  - 197
  websocket._handshake._get_handshake_headers:
  - 128
  - 130
  - 131
  - 133
  - 135
  - 136
  - 138
  - 77
  - 80
  - 81
  - 83
  - 84
  - 85
  - 87
  - 91
  - 92
  - 93
  - 94
  - 95
  - 96
  - 98
  - 100
  - 103
  - 104
  - 108
  - 109
  - 111
  - 112
  - 114
  - 116
  - 117
  - 118
  - 120
  - 121
  - 122
  - 124
  - 125
  websocket._handshake._get_resp_headers:
  - 143
  - 144
  - 145
  - 146
  - 147
  websocket._handshake._pack_hostname:
  - 69
  websocket._handshake._validate:
  - 162
  - 163
  - 164
  - 166
  - 167
  - 170
  - 171
  - 172
  - 173
  - 175
  - 177
  - 178
  - 180
  - 182
  - 183
  - 185
  - 186
  - 187
  - 189
  websocket._handshake.handshake:
  - 64
  - 51
  - 53
  - 54
  - 55
  - 57
  - 58
  - 59
  - 60
  - 61
  websocket._handshake.handshake_response.__init__:
  - 47
  websocket._http:
  - 1
  websocket._http._get_addrinfo_list:
  - 153
  - 154
  - 147
  - 163
  websocket._http._open_socket:
  - 192
  - 171
  - 173
  - 174
  - 175
  - 176
  - 177
  - 178
  - 184
  - 186
  - 187
  websocket._http._ssl_socket:
  - 260
  - 261
  - 263
  - 264
  - 265
  - 267
  - 268
  - 271
  - 274
  - 275
  websocket._http._start_proxied_socket:
  - 99
  - 101
  - 102
  - 103
  - 72
  - 75
  - 77
  - 80
  - 84
  - 87
  - 91
  - 94
  websocket._http._tunnel:
  - 288
  - 290
  - 291
  - 293
  - 295
  - 298
  - 302
  - 281
  - 282
  - 283
  - 286
  websocket._http._wrap_sni_socket:
  - 210
  - 211
  - 212
  - 217
  - 219
  - 220
  - 221
  - 222
  - 223
  - 224
  - 225
  - 226
  - 227
  - 229
  - 230
  - 236
  - 240
  - 241
  - 243
  - 244
  - 245
  - 247
  - 248
  - 249
  - 251
  - 253
  - 254
  websocket._http.connect:
  - 129
  - 130
  - 131
  - 133
  - 134
  - 135
  - 141
  - 142
  - 113
  - 114
  - 116
  - 118
  - 121
  - 123
  websocket._http.proxy_info.__init__:
  - 54
  - 55
  - 56
  - 57
  - 58
  - 59
  - 61
  - 62
  websocket._http.read_headers:
  - 320
  - 321
  - 323
  - 324
  - 325
  - 328
  - 329
  - 331
  - 332
  - 334
  - 338
  - 313
  - 316
  - 317
  - 318
  websocket._logging:
  - 3
  - 22
  - 30
  websocket._logging.debug:
  - 72
  websocket._logging.dump:
  - 57
  - 58
  - 59
  - 60
  websocket._logging.enableTrace:
  - 41
  - 51
  - 52
  - 53
  websocket._logging.error:
  - 64
  websocket._logging.info:
  - 76
  websocket._logging.isEnabledForDebug:
  - 89
  websocket._logging.isEnabledForError:
  - 85
  websocket._logging.trace:
  - 80
  - 81
  websocket._logging.warning:
  - 68
  websocket._socket:
  - 32
  - 33
  - 34
  - 35
  - 36
  - 37
  - 38
  - 11
  - 31
  websocket._socket.getdefaulttimeout:
  - 72
  websocket._socket.recv:
  - 107
  - 108
  - 110
  - 114
  - 84
  - 117
  - 118
  - 123
  websocket._socket.recv._recv:
  - 97
  - 98
  - 100
  - 101
  - 103
  - 104
  - 89
  - 93
  - 94
  websocket._socket.recv_line:
  - 137
  - 133
  - 134
  - 135
  websocket._socket.send:
  - 169
  - 170
  - 172
  - 141
  - 142
  - 174
  - 144
  - 177
  - 178
  websocket._socket.send._send:
  - 160
  - 162
  - 163
  - 165
  - 166
  - 149
  - 153
  - 154
  - 156
  - 159
  websocket._socket.setdefaulttimeout:
  - 59
  websocket._socket.sock_opt.__init__:
  - 49
  - 51
  websocket._ssl_compat:
  - 1
  websocket._url:
  - 8
  websocket._url._is_address_in_network:
  - 97
  - 98
  - 99
  - 101
  websocket._url._is_ip_address:
  - 81
  websocket._url._is_no_proxy_host:
  - 106
  - 107
  - 108
  - 109
  - 110
  - 113
  - 115
  - 117
  - 118
  - 119
  - 120
  websocket._url._is_subnet_address:
  - 90
  - 91
  websocket._url.get_proxy_info:
  - 128
  - 163
  - 164
  - 165
  - 166
  - 154
  - 157
  websocket._url.parse_url:
  - 65
  - 70
  - 40
  - 43
  - 45
  - 46
  - 51
  - 55
  - 56
  - 58
  - 60
  - 31
  websocket._utils:
  - 3
  websocket._utils._validate_utf8:
  - 80
  - 81
  - 82
  - 39
  websocket._utils.extract_err_message:
  - 98
  websocket._utils.extract_error_code:
  - 105
  - 106
  websocket._utils.validate_utf8:
  - 89
  - 94
  websocket._wsdump:
  - 3
  - 227
  - 229
  - 231
  - 49
  websocket._wsdump.InteractiveConsole.read:
  - 117
  websocket._wsdump.InteractiveConsole.write:
  - 112
  - 113
  - 114
  - 110
  websocket._wsdump.NonInteractive.read:
  - 128
  websocket._wsdump.NonInteractive.write:
  - 123
  - 124
  - 125
  websocket._wsdump.RawInput.raw_input:
  - 97
  - 99
  - 100
  - 101
  - 102
  websocket._wsdump.VAction.__call__:
  - 58
  - 60
  - 61
  - 55
  websocket._wsdump.get_encoding:
  - 41
  - 42
  - 45
  websocket._wsdump.main:
  - 132
  - 133
  - 134
  - 135
  - 137
  - 138
  - 141
  - 143
  - 146
  - 148
  - 149
  - 150
  - 151
  - 152
  - 154
  - 155
  - 209
  - 211
  - 213
  - 214
  - 218
  - 219
  - 223
  websocket._wsdump.main.recv:
  - 162
  - 164
  - 166
  - 167
  - 169
  - 170
  - 159
  websocket._wsdump.main.recv_ws:
  - 192
  - 193
  - 195
  - 196
  - 200
  - 201
  - 202
  - 204
  - 206
  - 177
  - 179
  - 180
  - 181
  - 183
  - 186
  - 188
  websocket._wsdump.parse_args:
  - 65
  - 66
  - 68
  - 70
  - 74
  - 76
  - 78
  - 80
  - 82
  - 84
  - 86
  - 88
  - 91
Fuzzer filename: /src/fuzz_url.py
Inheritance:
  websocket._abnf.ABNF: []
  websocket._abnf.continuous_frame: []
  websocket._abnf.frame_buffer: []
  websocket._app.Dispatcher:
  - DispatcherBase
  websocket._app.DispatcherBase: []
  websocket._app.SSLDispatcher:
  - DispatcherBase
  websocket._app.WebSocketApp: []
  websocket._app.WrappedDispatcher: []
  websocket._cookiejar.SimpleCookieJar: []
  websocket._core.WebSocket: []
  websocket._exceptions.WebSocketAddressException:
  - WebSocketException
  websocket._exceptions.WebSocketBadStatusException:
  - WebSocketException
  websocket._exceptions.WebSocketConnectionClosedException:
  - WebSocketException
  websocket._exceptions.WebSocketException:
  - Exception
  websocket._exceptions.WebSocketPayloadException:
  - WebSocketException
  websocket._exceptions.WebSocketProtocolException:
  - WebSocketException
  websocket._exceptions.WebSocketProxyException:
  - WebSocketException
  websocket._exceptions.WebSocketTimeoutException:
  - WebSocketException
  websocket._handshake.handshake_response: []
  websocket._http.ProxyConnectionError:
  - Exception
  websocket._http.ProxyError:
  - Exception
  websocket._http.ProxyTimeoutError:
  - Exception
  websocket._http.proxy_info: []
  websocket._logging.NullHandler: []
  websocket._socket.sock_opt: []
  websocket._ssl_compat.SSLError:
  - Exception
  websocket._ssl_compat.SSLWantReadError:
  - Exception
  websocket._ssl_compat.SSLWantWriteError:
  - Exception
  websocket._utils.NoLock: []
  websocket._wsdump.InteractiveConsole:
  - RawInput
  websocket._wsdump.NonInteractive:
  - RawInput
  websocket._wsdump.RawInput: []
  websocket._wsdump.VAction: []
ep:
  func_name: TestOneInput
  module: '...fuzz_url'
