{*ast.File [responses]}


{*ast.GenDecl -> *ast.ImportSpec -> *ast.BasicLit [STRING "encoding/json"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "io"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "math"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "reflect"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "strconv"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "strings"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "unsafe"]}
{*ast.ImportSpec [jsoniter]}
{*ast.BasicLit [STRING "github.com/json-iterator/go"]}
{*ast.ImportSpec -> *ast.BasicLit [STRING "github.com/modern-go/reflect2"]}
{*ast.GenDecl -> *ast.ValueSpec [maxUint]}
{*ast.UnaryExpr [^]}
{*ast.CallExpr [uint]}
{*ast.BasicLit [INT 0]}
{*ast.GenDecl -> *ast.ValueSpec [maxInt]}
{*ast.CallExpr [int]}
{*ast.BinaryExpr [>> maxUint]}
{*ast.BasicLit [INT 1]}
{*ast.GenDecl -> *ast.ValueSpec [minInt]}
{*ast.BinaryExpr [-]}
{*ast.UnaryExpr [- maxInt]}
{*ast.BasicLit [INT 1]}
{*ast.GenDecl -> *ast.ValueSpec [jsonParser]}
{*ast.SelectorExpr [jsoniter API]}


function name is init 
	 { [init]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.BlockStmt -> *ast.AssignStmt [= jsonParser]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CompositeLit -> *ast.SelectorExpr [jsoniter Config]}
	 {*ast.KeyValueExpr [EscapeHTML true]}
	 {*ast.KeyValueExpr [SortMapKeys true]}
	 {*ast.KeyValueExpr [ValidateJsonRawMessage true]}
	 {*ast.KeyValueExpr [CaseSensitive true Froze]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [jsonParser RegisterExtension]}
	 {*ast.CallExpr [newBetterFuzzyExtension]}


function name is newBetterFuzzyExtension 
	 { [newBetterFuzzyExtension]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [jsoniter DecoderExtension]}
	 {*ast.BlockStmt -> *ast.ReturnStmt -> *ast.CompositeLit -> *ast.SelectorExpr [jsoniter DecoderExtension]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect String]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyStringDecoder]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Bool]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [fuzzyBoolDecoder]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Float32]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyFloat32Decoder]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Float64]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyFloat64Decoder]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Int]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64 maxInt]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.CallExpr [float64 minInt]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode int"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int ptr]}
	 {*ast.CallExpr [int val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadInt]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Uint]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64 maxUint]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode uint"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint ptr]}
	 {*ast.CallExpr [uint val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadUint]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Int8]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxInt8]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MinInt8]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode int8"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int8 ptr]}
	 {*ast.CallExpr [int8 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int8 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadInt8]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Uint8]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxUint8]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode uint8"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint8 ptr]}
	 {*ast.CallExpr [uint8 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint8 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadUint8]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Int16]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxInt16]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MinInt16]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode int16"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int16 ptr]}
	 {*ast.CallExpr [int16 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int16 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadInt16]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Uint16]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxUint16]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode uint16"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint16 ptr]}
	 {*ast.CallExpr [uint16 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint16 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadUint16]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Int32]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxInt32]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MinInt32]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode int32"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int32 ptr]}
	 {*ast.CallExpr [int32 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int32 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadInt32]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Uint32]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxUint32]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode uint32"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint32 ptr]}
	 {*ast.CallExpr [uint32 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint32 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadUint32]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Int64]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxInt64]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MinInt64]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode int64"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64 ptr]}
	 {*ast.CallExpr [int64 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [int64 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadInt64]}
	 {*ast.KeyValueExpr -> *ast.CallExpr -> *ast.SelectorExpr [reflect2 DefaultTypeOfKind]}
	 {*ast.SelectorExpr [reflect Uint64]}
	 {*ast.UnaryExpr [&]}
	 {*ast.CompositeLit [nullableFuzzyIntegerDecoder]}
	 {*ast.FuncLit -> *ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.IfStmt [isFloat]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= val]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [> val]}
	 {*ast.CallExpr [float64]}
	 {*ast.SelectorExpr [math MaxUint64]}
	 {*ast.BinaryExpr [< val]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzy decode uint64"]}
	 {*ast.BasicLit [STRING "exceed range"]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint64 ptr]}
	 {*ast.CallExpr [uint64 val]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [uint64 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadUint64]}


{*ast.GenDecl -> *ast.TypeSpec [nullableFuzzyStringDecoder]}
{*ast.StructType -> *ast.FieldList []}


function name is Decode 
	 {*ast.FieldList -> *ast.Field [decoder]}
	 {*ast.StarExpr [nullableFuzzyStringDecoder Decode]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= valueType]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter WhatIsNext]}
	 {*ast.SwitchStmt [valueType]}
	 {*ast.BlockStmt []}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NumberValue]}
	 {*ast.GenDecl -> *ast.ValueSpec [number]}
	 {*ast.SelectorExpr [json Number]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadVal]}
	 {*ast.UnaryExpr [& number]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [string ptr]}
	 {*ast.CallExpr [string number]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter StringValue]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [string ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadString]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter BoolValue]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [string ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strconv FormatBool]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadBool]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NilValue]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadNil]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [string ptr]}
	 {*ast.BasicLit [STRING ""]}
	 {*ast.CaseClause -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzyStringDecoder"]}
	 {*ast.BasicLit [STRING "not number or string or bool"]}
	 {*ast.GenDecl -> *ast.TypeSpec [fuzzyBoolDecoder]}
	 {*ast.StructType -> *ast.FieldList []}


function name is Decode 
	 {*ast.FieldList -> *ast.Field [decoder]}
	 {*ast.StarExpr [fuzzyBoolDecoder Decode]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= valueType]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter WhatIsNext]}
	 {*ast.SwitchStmt [valueType]}
	 {*ast.BlockStmt []}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter BoolValue]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadBool]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NumberValue]}
	 {*ast.GenDecl -> *ast.ValueSpec [number]}
	 {*ast.SelectorExpr [json Number]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadVal]}
	 {*ast.UnaryExpr [& number]}
	 {*ast.AssignStmt [:= num err]}
	 {*ast.CallExpr -> *ast.SelectorExpr [number Int64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [!= err nil]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzyBoolDecoder"]}
	 {*ast.BasicLit [STRING "get value from json.number failed"]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== num]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr false]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr true]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter StringValue]}
	 {*ast.AssignStmt [:= strValue]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings ToLower]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== strValue]}
	 {*ast.BasicLit [STRING "true"]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr true]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [||]}
	 {*ast.BinaryExpr [== strValue]}
	 {*ast.BasicLit [STRING "false"]}
	 {*ast.BinaryExpr [== strValue]}
	 {*ast.BasicLit [STRING ""]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr false]}
	 {*ast.BlockStmt -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzyBoolDecoder"]}
	 {*ast.BinaryExpr [+]}
	 {*ast.BasicLit [STRING "unsupported bool value: "]}
	 { [strValue]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NilValue]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadNil]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [bool ptr false]}
	 {*ast.CaseClause -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzyBoolDecoder"]}
	 {*ast.BasicLit [STRING "not number or string or nil"]}
	 {*ast.GenDecl -> *ast.TypeSpec [nullableFuzzyIntegerDecoder]}
	 {*ast.StructType -> *ast.FieldList -> *ast.Field [fun]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field [isFloat bool]}
	 {*ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}


function name is Decode 
	 {*ast.FieldList -> *ast.Field [decoder]}
	 {*ast.StarExpr [nullableFuzzyIntegerDecoder Decode]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= valueType]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter WhatIsNext]}
	 {*ast.GenDecl -> *ast.ValueSpec [str string]}
	 {*ast.SwitchStmt [valueType]}
	 {*ast.BlockStmt []}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NumberValue]}
	 {*ast.GenDecl -> *ast.ValueSpec [number]}
	 {*ast.SelectorExpr [json Number]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadVal]}
	 {*ast.UnaryExpr [& number]}
	 {*ast.AssignStmt [= str]}
	 {*ast.CallExpr [string number]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter StringValue]}
	 {*ast.AssignStmt [= str]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== str]}
	 {*ast.BasicLit [STRING ""]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= str]}
	 {*ast.BasicLit [STRING "0"]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter BoolValue]}
	 {*ast.IfStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadBool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= str]}
	 {*ast.BasicLit [STRING "1"]}
	 {*ast.BlockStmt -> *ast.AssignStmt [= str]}
	 {*ast.BasicLit [STRING "0"]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NilValue]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadNil]}
	 {*ast.AssignStmt [= str]}
	 {*ast.BasicLit [STRING "0"]}
	 {*ast.CaseClause -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "fuzzyIntegerDecoder"]}
	 {*ast.BasicLit [STRING "not number or string"]}
	 {*ast.AssignStmt [:= newIter]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool BorrowIterator]}
	 {*ast.CallExpr -> *ast.ArrayType [byte str]}
	 {*ast.DeferStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool ReturnIterator newIter]}
	 {*ast.AssignStmt [:= isFloat]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.CallExpr -> *ast.SelectorExpr [strings IndexByte str]}
	 {*ast.BasicLit [CHAR '.']}
	 {*ast.UnaryExpr [-]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [decoder fun isFloat ptr newIter]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error]}
	 {*ast.SelectorExpr [io EOF]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [iter Error]}
	 {*ast.SelectorExpr [newIter Error]}


{*ast.GenDecl -> *ast.TypeSpec [nullableFuzzyFloat32Decoder]}
{*ast.StructType -> *ast.FieldList []}


function name is Decode 
	 {*ast.FieldList -> *ast.Field [decoder]}
	 {*ast.StarExpr [nullableFuzzyFloat32Decoder Decode]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= valueType]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter WhatIsNext]}
	 {*ast.GenDecl -> *ast.ValueSpec [str string]}
	 {*ast.SwitchStmt [valueType]}
	 {*ast.BlockStmt []}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NumberValue]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat32]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter StringValue]}
	 {*ast.AssignStmt [= str]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== str]}
	 {*ast.BasicLit [STRING ""]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [:= newIter]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool BorrowIterator]}
	 {*ast.CallExpr -> *ast.ArrayType [byte str]}
	 {*ast.DeferStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool ReturnIterator newIter]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [newIter ReadFloat32]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error]}
	 {*ast.SelectorExpr [io EOF]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [iter Error]}
	 {*ast.SelectorExpr [newIter Error]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter BoolValue]}
	 {*ast.IfStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadBool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NilValue]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadNil]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float32 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CaseClause -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "nullableFuzzyFloat32Decoder"]}
	 {*ast.BasicLit [STRING "not number or string"]}
	 {*ast.GenDecl -> *ast.TypeSpec [nullableFuzzyFloat64Decoder]}
	 {*ast.StructType -> *ast.FieldList []}


function name is Decode 
	 {*ast.FieldList -> *ast.Field [decoder]}
	 {*ast.StarExpr [nullableFuzzyFloat64Decoder Decode]}
	 {*ast.FuncType -> *ast.FieldList -> *ast.Field -> *ast.SelectorExpr [ptr unsafe Pointer]}
	 {*ast.Field [iter]}
	 {*ast.StarExpr -> *ast.SelectorExpr [jsoniter Iterator]}
	 {*ast.BlockStmt -> *ast.AssignStmt [:= valueType]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter WhatIsNext]}
	 {*ast.GenDecl -> *ast.ValueSpec [str string]}
	 {*ast.SwitchStmt [valueType]}
	 {*ast.BlockStmt []}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NumberValue]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadFloat64]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter StringValue]}
	 {*ast.AssignStmt [= str]}
	 {*ast.CallExpr -> *ast.SelectorExpr [iter ReadString]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [== str]}
	 {*ast.BasicLit [STRING ""]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.ReturnStmt -> *ast.AssignStmt [:= newIter]}
	 {*ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool BorrowIterator]}
	 {*ast.CallExpr -> *ast.ArrayType [byte str]}
	 {*ast.DeferStmt -> *ast.CallExpr -> *ast.SelectorExpr -> *ast.CallExpr -> *ast.SelectorExpr [iter Pool ReturnIterator newIter]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.CallExpr -> *ast.SelectorExpr [newIter ReadFloat64]}
	 {*ast.IfStmt []}
	 {*ast.BinaryExpr [&&]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error nil]}
	 {*ast.BinaryExpr [!=]}
	 {*ast.SelectorExpr [newIter Error]}
	 {*ast.SelectorExpr [io EOF]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.SelectorExpr [iter Error]}
	 {*ast.SelectorExpr [newIter Error]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter BoolValue]}
	 {*ast.IfStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadBool]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.BasicLit [INT 1]}
	 {*ast.BlockStmt -> *ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CaseClause -> *ast.SelectorExpr [jsoniter NilValue]}
	 {*ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReadNil]}
	 {*ast.AssignStmt [=]}
	 {*ast.StarExpr -> *ast.ParenExpr -> *ast.CallExpr -> *ast.ParenExpr -> *ast.StarExpr [float64 ptr]}
	 {*ast.BasicLit [INT 0]}
	 {*ast.CaseClause -> *ast.ExprStmt -> *ast.CallExpr -> *ast.SelectorExpr [iter ReportError]}
	 {*ast.BasicLit [STRING "nullableFuzzyFloat64Decoder"]}
	 {*ast.BasicLit [STRING "not number or string"]}


