Module Expr Str Import alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias Expr Str Assign NameStore Num ClassDef bases NameLoad body Expr Str Expr Str FunctionDef arguments args NameParam defaults kwarg body Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list Expr Str FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareNotEq AttributeLoad NameLoad attr Call NameLoad BinOpDiv NameLoad NameLoad body Assign AttributeStore NameLoad attr Call NameLoad BinOpDiv NameLoad NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareEq BinOpMod AttributeLoad NameLoad attr NameLoad Num body Assign AttributeStore NameLoad attr Call NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad AugAssignAdd AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam defaults body If BoolOpOr CompareLt NameLoad Num CompareGtE NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad BinOpAdd BinOpAdd BinOpAdd Str Call NameLoad NameLoad Str Call NameLoad BinOpSub AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr BinOpMod NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareNotEq NameLoad BinOpSub AttributeLoad NameLoad attr Num body Raise Call NameLoad BinOpAdd BinOpAdd BinOpAdd BinOpAdd Str NameLoad Str BinOpSub AttributeLoad NameLoad attr Num Str Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr BinOpMod NameLoad NameLoad If CompareEq BinOpMod NameLoad NameLoad Num body Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr NameLoad AugAssignSub AttributeStore NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults kwarg body Expr Call AttributeLoad NameLoad attr NameLoad Num Num NameLoad Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Num Num NameLoad Expr Call AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr Num decorator_list decorator_list ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Return BinOpMod Str TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list Expr Str ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Num Num AttributeLoad NameLoad attr Expr Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str Str decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Num Num NameLoad Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Num Num NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Num Num NameLoad Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Num Num NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq NameLoad NameLoad body If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad orelse If BoolOpOr CompareNotEq AttributeLoad NameLoad attr NameLoad CompareNotEq AttributeLoad NameLoad attr NameLoad body If BoolOpOr CompareEq NameLoad NameLoad CompareEq Str NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Str orelse If UnaryOpNot NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num NameLoad orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list decorator_list Expr Str ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign NameStore NameLoad If CompareGt AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr Num Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body If BoolOpAnd CompareEq NameLoad Num CompareEq NameLoad Num body Assign NameStore Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body If AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore BinOpSub Call AttributeLoad NameLoad attr Num orelse Assign NameStore AttributeLoad NameLoad attr While CompareGtE NameLoad AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad AugAssignSub NameStore Num Assign AttributeStore NameLoad attr BinOpSub AttributeLoad NameLoad attr Num decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body If CompareLt AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad AttributeLoad NameLoad attr CompareEq NameLoad AttributeLoad NameLoad attr body Expr Str Assign NameStore Call AttributeLoad NameLoad attr If BoolOpOr CompareEq NameLoad NameLoad CompareNotEq Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Num Num body Assign AttributeStore NameLoad attr NameLoad If CompareGt AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad If CompareLt AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr AugAssignAdd AttributeStore NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr If CompareNotEq Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr BinOpAdd Call NameLoad NameLoad Str orelse Expr Call AttributeLoad NameLoad attr Str If CompareNotEq Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr BinOpAdd Call NameLoad NameLoad Str orelse Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list decorator_list Expr Str ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore Call NameLoad Call NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub Call NameLoad BinOpAdd NameLoad NameLoad NameLoad Assign NameStore Call NameLoad Call NameLoad NameLoad Assign NameStore Call NameLoad BinOpSub Call NameLoad BinOpAdd NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad BinOpMult Num NameLoad NameLoad Expr Str If CompareEq NameLoad NameLoad body If CompareGt NameLoad Num body AugAssignAdd NameStore BinOpDiv NameLoad Num AugAssignAdd NameStore BinOpDiv NameLoad Num AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad Assign NameStore Num Assign NameStore Str If CompareEq NameLoad NameLoad body Assign NameStore Str orelse If CompareLt NameLoad Num body AugAssignAdd NameStore BinOpDiv NameLoad Num AugAssignAdd NameStore BinOpDiv NameLoad Num orelse AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body If CompareEq Num BinOpMod NameLoad Num body Assign NameStore Call NameLoad BinOpDiv NameLoad Num Assign NameStore BinOpAdd NameLoad Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd BinOpAdd Call NameLoad NameLoad Str Call NameLoad NameLoad Str Call NameLoad NameLoad Str Call NameLoad NameLoad Str orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str BinOpAdd Call NameLoad Call NameLoad BinOpDiv NameLoad Num Str Assign AttributeStore NameLoad attr NameLoad If CompareEq NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad orelse If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str BinOpAdd Call NameLoad NameLoad Str Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str BinOpAdd Call NameLoad NameLoad Str Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr BinOpAdd Call NameLoad NameLoad Str Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr BinOpAdd Call NameLoad NameLoad Str Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr NameLoad body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list decorator_list Expr Str ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareEq NameLoad AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr If CompareNotEq NameLoad AttributeLoad NameLoad attr body If Call NameLoad AttributeLoad NameLoad attr NameLoad body Expr Str Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Str Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Num Num orelse Raise Call NameLoad BinOpAdd BinOpAdd Str Str Str decorator_list FunctionDef arguments args NameParam NameParam defaults kwarg body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Num decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body If BoolOpAnd CompareEq NameLoad Num CompareEq NameLoad Num body Assign NameStore Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareNotEq NameLoad AttributeLoad NameLoad attr body If CompareEq NameLoad NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Assign AttributeStore NameLoad attr AttributeStore NameLoad attr Num orelse Assign NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr If BoolOpAnd CompareEq NameLoad AttributeLoad NameLoad attr CompareEq NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr orelse Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad Call NameLoad AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call NameLoad Call NameLoad AttributeLoad NameLoad attr If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq AttributeLoad NameLoad attr Num body Assign AttributeStore NameLoad attr Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam defaults body If AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore BinOpSub Call AttributeLoad AttributeLoad NameLoad attr attr Num orelse Assign NameStore AttributeLoad NameLoad attr While CompareGtE NameLoad AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str Str AugAssignSub NameStore Num Assign AttributeStore NameLoad attr BinOpSub AttributeLoad NameLoad attr Num decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body If CompareLt AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr If CompareGt AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Str Str orelse Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad If CompareLt AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr AugAssignAdd AttributeStore NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list decorator_list Assign NameStore Num ClassDef bases NameLoad body FunctionDef arguments args NameParam NameParam defaults kwarg body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Expr Call AttributeLoad AttributeLoad NameLoad attr attr Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr BinOpBitOr BinOpBitOr BinOpBitOr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr If BoolOpOr CompareEq NameLoad NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr NameLoad Str orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Num Num decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Num Num decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body If CompareEq Num Call AttributeLoad AttributeLoad NameLoad attr attr body For NameStore Call NameLoad BinOpSub NameLoad Num Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareEq Num Call AttributeLoad AttributeLoad NameLoad attr attr body For NameStore Call NameLoad BinOpSub NameLoad Num Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str If BoolOpAnd CompareLtE NameLoad Num NameLoad body Return orelse If CompareLt NameLoad Num body Assign NameStore NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareEq NameLoad NameLoad body Assign AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr BinOpSub BinOpAdd Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If BoolOpAnd CompareLtE NameLoad Num NameLoad body Return orelse If CompareLt NameLoad Num body Assign NameStore NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareEq NameLoad NameLoad body Assign AttributeStore NameLoad attr NameLoad orelse Assign AttributeStore NameLoad attr BinOpSub BinOpAdd Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body If CompareLtE NameLoad Num body Return AttributeLoad NameLoad attr orelse Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareLtE NameLoad Num body Return AttributeLoad NameLoad attr orelse Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr attr Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr BinOpAdd BinOpAdd BinOpAdd Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Assign AttributeStore NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr For NameStore Call NameLoad Call AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If BoolOpOr CompareEq NameLoad NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Num Num Expr Call AttributeLoad NameLoad attr NameLoad Str orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Str decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If CompareEq UnaryOpUSub AttributeLoad NameLoad attr NameLoad body Assign NameStore AttributeLoad NameLoad attr orelse If CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpSub BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num orelse If UnaryOpNot CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpDiv BinOpAdd BinOpMult AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr NameLoad BinOpMult BinOpSub BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num BinOpSub NameLoad AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If CompareEq UnaryOpUSub AttributeLoad NameLoad attr NameLoad body Assign NameStore Num orelse If CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpSub AttributeLoad NameLoad attr Num orelse If UnaryOpNot CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr Num BinOpSub NameLoad AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub NameLoad AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore BinOpDiv BinOpMult NameLoad BinOpSub AttributeLoad NameLoad attr Num BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr If CompareEq UnaryOpUSub AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpSub BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num orelse If CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore AttributeLoad NameLoad attr orelse If UnaryOpNot CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpDiv BinOpAdd BinOpMult AttributeLoad NameLoad attr BinOpSub NameLoad NameLoad BinOpMult BinOpSub BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num BinOpSub NameLoad NameLoad BinOpSub NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr If CompareEq UnaryOpUSub AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpSub AttributeLoad NameLoad attr Num orelse If CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore Num orelse If UnaryOpNot CompareEq AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr Num BinOpSub NameLoad NameLoad BinOpSub NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub NameLoad AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub NameLoad AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareNotEq NameLoad NameLoad CompareGt AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpDiv BinOpMult BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad BinOpSub AttributeLoad NameLoad attr Num Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpDiv BinOpMult NameLoad BinOpSub AttributeLoad NameLoad attr Num BinOpSub NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If BoolOpAnd CompareIsNot AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad NameLoad attr Return BoolOpOr BoolOpAnd NameLoad Call AttributeLoad NameLoad attr NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore BoolOpOr BoolOpAnd NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareNotEq NameLoad AttributeLoad NameLoad attr body If UnaryOpNot AttributeLoad NameLoad attr body TryExcept body Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad handlers ExceptHandler body Pass Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr BoolOpOr BoolOpAnd NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad If CompareEq NameLoad AttributeLoad NameLoad attr body If CompareNotEq NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr NameLoad AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr attr AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr attr orelse If UnaryOpNot AttributeLoad NameLoad attr body TryExcept body Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad handlers ExceptHandler body Pass Assign AttributeStore NameLoad attr NameLoad Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr AttributeLoad NameLoad attr AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr attr AttributeLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr attr If CompareEq NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse If UnaryOpNot Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Str Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad If CompareNotEq NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad Call AttributeLoad NameLoad attr attr If UnaryOpNot Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr Num attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr If CompareNotEq NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr attr If UnaryOpNot CompareEq AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr attr If CompareNotEq NameLoad NameLoad body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad If CompareNotEq NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr If CompareNotEq NameLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr body Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr Call AttributeLoad Call AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr attr Expr Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults body If CompareIs NameLoad NameLoad body Return NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore NameLoad Expr Str If CompareEq NameLoad NameLoad body Return NameLoad TryExcept body Assign NameStore NameLoad While BoolOpAnd CompareIsNot NameLoad NameLoad CompareIsNot NameLoad NameLoad body If Call AttributeLoad NameLoad attr NameLoad NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr handlers ExceptHandler body Expr Str Return NameLoad Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body If CompareEq NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore NameLoad Expr Str Assign NameStore BinOpAdd Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareLt NameLoad NameLoad CompareLt BinOpAdd NameLoad Num BinOpAdd NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore BinOpAdd Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareLt NameLoad NameLoad CompareLt BinOpAdd NameLoad Num BinOpAdd NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults NameLoad body Assign NameStore NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr If BoolOpOr CompareNotEq NameLoad AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr If CompareNotEq NameLoad NameLoad body If Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad orelse If Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore NameLoad If Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad body Expr Str Assign NameStore NameLoad orelse If Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad orelse Assign NameStore Call AttributeLoad NameLoad attr If CompareNotEq NameLoad NameLoad body If Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad body Assign NameStore NameLoad Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad Expr Str Assign NameStore CompareEq Str NameLoad If BoolOpAnd BoolOpOr CompareEq Str NameLoad CompareEq Str NameLoad NameLoad UnaryOpNot Call AttributeLoad NameLoad attr NameLoad body Expr Str If BoolOpOr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad If BoolOpAnd UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr orelse If BoolOpAnd CompareEq Str NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr NameLoad body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad If BoolOpAnd UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr body Expr Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore NameLoad Assign NameStore Num While BoolOpAnd NameLoad CompareLt NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad attr AugAssignAdd NameStore Num Return NameLoad decorator_list Expr Str FunctionDef arguments args NameParam defaults body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Return AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore BinOpAdd BinOpAdd BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore BinOpAdd BinOpAdd BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Return NameLoad decorator_list decorator_list
N/A N/A 
* Copyright 2007,2008,2009 John C. Gunther
* Copyright (C) 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net>
*
* Licensed under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at:
*
*  http:#www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the
* License.
*
 N/A math pyjamas DOM pyjamas Window pyjamas.ui Event pyjamas.ui.AbsolutePanel AbsolutePanel pyjamas.ui.Composite Composite pyjamas.ui.Grid Grid pyjamas.ui HasHorizontalAlignment pyjamas.ui HasVerticalAlignment pyjamas.ui.HTML HTML pyjamas.ui.Image Image pyjamas.ui.SimplePanel SimplePanel pyjamas.ui.UIObject UIObject pyjamas.ui.Widget Widget pyjamas.chart.GChartConsts N_PRE_SYSTEM_CURVES pyjamas.chart.GChartConsts TRANSPARENT_BORDER_COLOR pyjamas.chart.GChartConsts HOVER_ANNOTATION_ID pyjamas.chart.GChartConsts HOVER_CURSOR_ID pyjamas.chart.GChartConsts USE_CSS pyjamas.chart.GChartConsts NAI pyjamas.chart.GChartConsts DEFAULT_BLANK_IMAGE_URL_FULLPATH pyjamas.chart GChartUtil pyjamas.chart Double N/A 
* This class' sole purpose is to work around a FF 2
* performance limitation: chart update times increase as
* O(N^2) after the number of direct ancestor child widgets in
* a single AbsolutePanel exceeds around 500-1000, AND the
* chart is updated in more than one browser-displayed stage
* (e.g, via a series of incremental updates that successively
* add more curve data, for purposes of user feedback). By
* contrast, IE7 times grow as O(N) even if 3,000 child widgets
* are added to a previously displayed chart (e.g. by adding a
* bar curve with 3,000 bars on it).
*
* <p>
*
* For solid-fill line chart support (LINE SymbolType
* introduced in 2.2), thousands of widgets are often needed
* and so these O(N^2) FF 2 times were just too slow.
*
* <p>
*
* Some kind of fixed hash table inside of FF 2 divs could
* explain this switch from O(N) to O(N^2) performance.
* <p>
*
* Approach is to split up the large AbsolutePanel into a
* series of child panels, each of which contains a number of
* elements within the range where FF 2 updates are O(N).
* <p>
*
* Tried to keep it light-weight so IE7 isn't penalized too
* much for having to workaround this FF 2 limitation.
*
 N/A WIDGETS_PER_PANEL 256 PartitionedAbsolutePanel N/A Composite N/A N/A  Max number of widgets in each panel; chose a value as large as
    possible while remaining within the empirically
    determined FF 2 O(N) range. Here's the data (from a 3,000 element
    test based on the sin curve of the 2.1 live demo
    called GChartExample15c.java) upon which this choice was based:
    <p>

    <pre>

    Size    FF2    IE7
    (sec)  (sec)
    1     ~14     16
    2      11     13
    32      9      11
    64      9      12
    128      9      11
    256      9      11
    512      10     11
    1024     15     11
    2048     27     11
    4096*    61     12

    </pre>
    <p>

    The two largest sizes are good approximations of FF2 times we got
    informally before the switch to partitioned AbsolutePanels with
    charts with the corresponding number of elements (2000 or 3000).
    The overhead of the partitioning itself is very low, as shown by
    the modest time increase even when each element is placed into
    its own sub-panel. Tests with a < 256 element chart suggested at
    most a couple of ms of time increases due to the introduction of
    partitioning.

    <p>

    I kind of expected to see >61 second times with a sub-panel size
    of 1, since the parent panel still has >3,000 elements in this
    case. Whatever the cause of the performance logjam (presumably in
    the FF2 heap somewhere?)  simply the fact that you introduce a
    parent AbsolutePanel that holds various child AbslolutePanels
    that hold the actual image widgets appears to work around most of
    the problem. If such a useless change makes FF2 materially
    faster, that seems like a performance bug in FF2 to me.<p>

    The root FF cause is apparently NOT image cache related, though,
    since turning off the image cache via about:config didn't change
    times for the last row of the table above.

     N/A  Strange, reorganized DOM layout in GChart v2.5 and now cannot
    * reproduce these results in FF2 (partitioning gave just a modest 1
    * second boost in a 15 second, 4,000 point test). So, I was about to
    * drop back to a simple AbsolutePanel. BUT, in FF3, now, the 4,000
    * point test crashes unless I use PartitionedAbsolutePanel! I guess
    * Firefox 3 has problems with divs that have 4,000 elements, or at
    * least 4,000 image elements, on them, which the partioning fixes.
    *
     __init__ N/A N/A self N/A kwargs N/A N/A N/A self root N/A AbsolutePanel N/A N/A self subPanel None N/A N/A self iSubPanel -1 N/A N/A self nWidgets 0 N/A N/A N/A Composite __init__ self kwargs N/A N/A N/A self initWidget N/A self root N/A N/A  resets the partitioned panel to its initial state  clear N/A N/A self N/A N/A N/A N/A N/A N/A self root clear N/A N/A self subPanel None N/A N/A self iSubPanel -1 N/A N/A self nWidgets 0 N/A getWidgetCount N/A N/A self N/A N/A N/A N/A self nWidgets N/A selectSubPanel N/A N/A self iWidget N/A N/A N/A N/A N/A self iSubPanel N/A int N/A iWidget WIDGETS_PER_PANEL N/A N/A N/A self iSubPanel N/A int N/A iWidget WIDGETS_PER_PANEL N/A N/A self subPanel N/A N/A N/A self root getWidget N/A self iSubPanel N/A add N/A N/A self w N/A N/A N/A N/A N/A N/A self nWidgets WIDGETS_PER_PANEL 0 N/A N/A N/A self subPanel N/A AbsolutePanel N/A N/A N/A GChartUtil setOverflow N/A self subPanel visible N/A N/A N/A N/A self subPanel setPixelSize 0 0 N/A N/A N/A N/A self root add N/A self subPanel 0 0 N/A N/A N/A self selectSubPanel N/A self nWidgets N/A N/A N/A N/A self subPanel add w N/A N/A self nWidgets 1 N/A getWidget N/A N/A self iWidget N/A N/A N/A N/A N/A iWidget 0 N/A iWidget N/A self nWidgets N/A N/A N/A IndexError N/A N/A N/A Invalid widget index:  N/A str iWidget . Valid range is: 0... N/A str N/A N/A self nWidgets 1 N/A N/A N/A self selectSubPanel iWidget N/A result N/A N/A N/A self subPanel getWidget N/A iWidget WIDGETS_PER_PANEL N/A result N/A remove N/A N/A self iWidget N/A N/A N/A N/A iWidget N/A N/A self nWidgets 1 N/A N/A N/A IllegalArgumentException N/A N/A N/A N/A iWidgets arg =  iWidget  nWidgets-1 ( N/A N/A self nWidgets 1 ) is required. N/A N/A N/A self selectSubPanel iWidget N/A result N/A N/A N/A self subPanel remove N/A iWidget WIDGETS_PER_PANEL N/A N/A N/A iWidget WIDGETS_PER_PANEL 0 N/A N/A N/A N/A N/A self root remove N/A self subPanel N/A N/A self iSubPanel -1 N/A N/A self subPanel None N/A N/A self nWidgets 1 N/A result N/A setWidgetPosition N/A N/A self w left top N/A N/A N/A N/A N/A N/A self subPanel setWidgetPosition w left top N/A N/A AlignedLabel N/A Grid N/A __init__ N/A N/A self N/A kwargs N/A N/A N/A N/A Grid __init__ self 1 1 kwargs N/A N/A N/A N/A N/A self getCellFormatter setWordWrap 0 0 False N/A N/A N/A self setCellPadding 0 N/A N/A N/A self setCellSpacing 0 N/A N/A N/A self setBorderWidth 0 N/A N/A Rectangle N/A object N/A __str__ N/A N/A self N/A N/A N/A N/A Rect <%fx%f,%f-%f> N/A N/A self x N/A self y N/A self width N/A self height N/A N/A N/A *
* Provides support for reusing certain property specifications
* that are likely to be the same, given how aligned labels in a
* GChart get reused, and given certain assumptions about which
* properties of the labels are most likely to remain unchanged
* between updates.
* <p>
*
* Also applies a hidden outter grid technique to allow proper
* alignment with labels of unknown size without occluding
* mouse events of nearby elements.
* <p>
*
* Very similar in intent to the ReusableImage, see that
* class' header comment for more info.
*
 NonoccludingReusuableAlignedLabel N/A AlignedLabel N/A getInnerGrid N/A N/A self N/A N/A N/A N/A self innerGrid N/A __init__ N/A N/A self N/A N/A N/A N/A self fontSize NAI N/A N/A self fontStyle USE_CSS N/A N/A self fontWeight USE_CSS N/A N/A self fontColor USE_CSS N/A N/A self labelText None N/A N/A self isHTML False N/A N/A self labelWidget None N/A N/A self innerGrid N/A AlignedLabel N/A N/A self hAlign None N/A N/A self vAlign None N/A N/A N/A AlignedLabel __init__ self N/A N/A N/A self setWidget 0 0 N/A self innerGrid N/A 
        * The basic technique being used in the lines below is
        * illustrated by this excerpt from p 317 of "CSS, The
        * Definitive Guide" by Eric A. Meyer: <p>
        *
        * <pre>
        *   p.clear {visibility: hidden;}
        *   p.clear em {visibility: visible;}
        * </pre>
        * <p>
        *
        * In the above example, emphasized (italic) text is
        * positioned exactly as it would have been in the
        * paragraph had the normal text been visible, except that
        * the normal text <i>isn't</i> visible. And, unlike
        * transparent text, the invisible text also won't capture
        * mouse events (essential for our aligned labels)
        *
        * <p>
        *
        * With GChart's aligned label, we want the outter Grid (HTML
        * table) to be "not there" as far as visibility and
        * mouseovers, but still impact centering and
        * other alignment of the stuff in the visible, inner Grid.
        *
        * <p>
        *
        * Note that we cannot just make the Grid color transparent
        * (tried that first) because in that case the oversized
        * outter Grid required for alignment will still grab the
        * mouseover events inappropriately (wrong hovertext
        * problem).
        *
        * <p>
        *
        * Not certain but, apparently, IE6 requires that, if
        * you want to apply this trick when the outer element
        * is a table you must use another table as the
        * inner element. At least, the div inner element approach
        * I used at first (that basically worked in Firefox), made
        * both parent and child invisible in IE6.
        * <p>
        *
        * In summary:
        *
        * The upside: alignment without inappropriate event occlusion
        * The downside: the extra Grid element saps performance
        *
         N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement visibility hidden N/A N/A N/A DOM setStyleAttribute N/A N/A N/A self innerGrid getElement visibility visible N/A N/A 
    * Sets properties only if they have changed; to replace
    * expensive DOM calls with cheap inequality tests.
    *
    * TODO: Investigate moving properties that are guaranteed to be
    * the same across all elements in the image panel (backgroundColor,
    * borderColor, borderWidth, borderStyle, image url, possibly more)
    * into a single style for the image panel as a whole, and just add
    * that styleName to each image, and set the properties once, in
    * the style. If this worked, it would save both time and space
    * (style would be internal and not intended for direct developer
    * access, since in some charts canvas, not styles, would be
    * responsible for these curve properties), and the same approach
    * could be applied to the labelPanel.
    *
     setReusableProperties N/A N/A self fontSize fontStyle fontWeight fontColor hAlign vAlign labelText isHTML labelWidget N/A N/A N/A N/A N/A self fontSize fontSize N/A N/A N/A N/A DOM setIntStyleAttribute N/A N/A N/A self innerGrid getElement fontSize fontSize N/A N/A self fontSize fontSize N/A N/A N/A self fontStyle fontStyle N/A N/A N/A N/A DOM setStyleAttribute N/A N/A N/A self innerGrid getElement fontStyle fontStyle N/A N/A self fontStyle fontStyle N/A N/A N/A self fontWeight fontWeight N/A N/A N/A N/A DOM setStyleAttribute N/A N/A N/A self innerGrid getElement fontWeight fontWeight N/A N/A self fontWeight fontWeight N/A N/A N/A self fontColor fontColor N/A N/A N/A N/A DOM setStyleAttribute N/A N/A N/A self innerGrid getElement color fontColor N/A N/A self fontColor fontColor N/A N/A N/A self hAlign hAlign N/A N/A N/A N/A N/A N/A self getCellFormatter setHorizontalAlignment 0 0 hAlign N/A N/A N/A N/A N/A N/A self innerGrid getCellFormatter setHorizontalAlignment 0 0 hAlign N/A N/A self hAlign hAlign N/A N/A N/A self vAlign vAlign N/A N/A N/A N/A N/A N/A self getCellFormatter setVerticalAlignment 0 0 vAlign N/A N/A N/A N/A N/A N/A self innerGrid getCellFormatter setVerticalAlignment 0 0 vAlign N/A N/A self vAlign vAlign N/A N/A None labelWidget N/A N/A N/A N/A self labelWidget labelWidget N/A N/A N/A N/A N/A self innerGrid setWidget 0 0 labelWidget N/A N/A self labelWidget labelWidget N/A N/A self labelText None N/A N/A N/A N/A N/A self labelText labelText N/A N/A self isHTML isHTML N/A N/A N/A N/A None labelText N/A labelText N/A N/A N/A N/A N/A self innerGrid setText 0 0 N/A N/A N/A isHTML N/A N/A N/A N/A N/A self innerGrid setText 0 0 labelText N/A N/A N/A N/A N/A self innerGrid setHTML 0 0 labelText N/A N/A self isHTML isHTML N/A N/A self labelText labelText N/A N/A self labelWidget None N/A N/A N/A 
* AbsolutePanel that allows annotations it contains to be easily
* reused, for increased efficiency.
*
 AnnotationRenderingPanel N/A PartitionedAbsolutePanel N/A N/A 
    * Returns the inner grid of the first reusuable, non-occluding
    * aligned label in this rendering panel.
    *
     getFirstInnerAlignedLabel N/A N/A self N/A N/A N/A result None N/A N/A N/A self labelIndex 0 N/A N/A parent N/A N/A self getWidget 0 N/A result N/A N/A parent getInnerGrid N/A result N/A __init__ N/A N/A self chart N/A N/A N/A N/A self chart chart N/A N/A self labelIndex 0 N/A N/A self lastVisibleLabel -1 N/A N/A N/A PartitionedAbsolutePanel __init__ self N/A 
        * Because of event-occlusion that can occur on all browsers but IE,
        * annotation panels MUST by 0-sized/overflow:visible otherwise they
        * will short-circuit event processing needed for widget annotations
        * added by developer. Graphics rendering panels don't have this
        * constraint and thus can be clipped to the plot area.
        *
         N/A N/A N/A GChartUtil setOverflow self visible N/A N/A N/A self setPixelSize 0 0 N/A setLabelPosition N/A N/A self lbl x y N/A N/A N/A N/A N/A x -1 N/A y -1 N/A N/A x 0 N/A N/A N/A self setWidgetPosition lbl x y N/A beginRendering N/A N/A self N/A N/A N/A N/A self labelIndex 0 N/A endRendering N/A N/A self N/A N/A N/A N/A N/A self chart optimizeForMemory N/A N/A iLabel N/A N/A N/A self getWidgetCount 1 N/A N/A iLabel N/A self lastVisibleLabel N/A N/A iLabel N/A self labelIndex N/A N/A w N/A N/A self getWidget iLabel N/A N/A N/A self chart optimizeForMemory N/A N/A N/A N/A self remove iLabel N/A N/A N/A N/A w setVisible False N/A iLabel 1 N/A N/A self lastVisibleLabel N/A N/A self labelIndex 1 N/A N/A 
    * Creates (or reveals), and configures, an aligned label. Works
    * very similarly to addOrRevealImage.
    *
     getNextOrNewAlignedLabel N/A N/A self fontSize fontStyle fontWeight fontColor hAlign vAlign labelText isHTML labelWidget N/A N/A N/A N/A N/A self labelIndex N/A N/A self getWidgetCount N/A N/A result N/A N/A self getWidget N/A self labelIndex N/A N/A N/A None N/A result labelWidget N/A labelWidget N/A result labelWidget N/A N/A 
                * DOM element actually stored in the label's Grid-cell, and what
                * the label "thinks" is stored there, could be inconsistent if,
                * for example, the same label widget reference was used to
                * define two different points' annotations. In that case, we
                * need to clear the widget reference that the label stores
                * thus making it consistent with what is really in the DOM.
                * <p>
                *
                * This code was added to fix the bug reproduced by
                * TestGChart53.java. See that test for more info.
                *
                *
                 N/A e N/A N/A labelWidget getElement N/A N/A N/A None e N/A N/A N/A DOM getParent e N/A N/A N/A N/A N/A result innerGrid getCellFormatter getElement 0 0 N/A N/A N/A result labelWidget None N/A N/A N/A self labelIndex N/A self lastVisibleLabel N/A N/A N/A N/A result setVisible True N/A N/A result N/A NonoccludingReusuableAlignedLabel N/A N/A N/A self add result N/A N/A N/A result setReusableProperties fontSize fontStyle fontWeight fontColor hAlign vAlign labelText isHTML labelWidget N/A N/A N/A self lastVisibleLabel N/A self labelIndex N/A N/A N/A self lastVisibleLabel N/A self labelIndex N/A N/A self labelIndex 1 N/A result N/A renderAnnotation N/A N/A self annotation loc xCenter yCenter symWidth symHeight symbol N/A N/A N/A widthUpperBound N/A N/A annotation getWidthUpperBound N/A upLeftX N/A N/A loc getUpperLeftX xCenter widthUpperBound N/A abs symWidth N/A heightUpperBound N/A N/A annotation getHeightUpperBound N/A upLeftY N/A N/A loc getUpperLeftY yCenter heightUpperBound N/A abs symHeight N/A alignedLabel N/A N/A self getNextOrNewAlignedLabel N/A N/A annotation getFontSize N/A N/A annotation getFontStyle N/A N/A annotation getFontWeight N/A N/A annotation getFontColor N/A N/A loc getHorizontalAlignment N/A N/A loc getVerticalAlignment N/A N/A annotation getText N/A N/A annotation isHTML N/A N/A annotation getWidget N/A N/A N/A N/A loc getHorizontalAlignment N/A HasHorizontalAlignment ALIGN_LEFT N/A N/A N/A N/A alignedLabel setWidth N/A N/A str widthUpperBound px N/A N/A N/A N/A alignedLabel setWidth N/A N/A N/A N/A loc getVerticalAlignment N/A HasVerticalAlignment ALIGN_TOP N/A N/A N/A N/A alignedLabel setHeight N/A N/A str heightUpperBound px N/A N/A N/A N/A alignedLabel setHeight N/A N/A N/A self setLabelPosition alignedLabel upLeftX upLeftY N/A N/A N/A *
* Provides support for reusing certain property specifications
* that are likely to be the same, given how images in a GChart
* get reused, and given certain assumptions about which
* properties of the image are most likely to remain unchanged
* between updates.  For the most common scenarios, chart
* updates are significantly faster due to replacing (relatively
* expensive) DOM style attribute setting with (relatively
* cheap) String reference or integer equality tests.
* <p>
*
* For hovertext, the class also lets us defer actual generation
* of the hovertext until they actually mouse over the image,
* saving further time (it's surprisingly expensive just to
* format the numbers and such used in hovertexts).
* <p>
*
* TODO: Since we no longer use events on Image widgets,
* see if we can switch to just using simpler HTML elements,
* if that reduces the overhead associated with a Widget?
*
*
 ReusableImage N/A Image N/A __init__ N/A N/A self parent N/A N/A N/A N/A self _parent parent N/A N/A self backgroundColor USE_CSS N/A N/A self borderColor USE_CSS N/A N/A self borderStyle USE_CSS N/A N/A self cappedBorderWidthX2 NAI N/A N/A self width NAI N/A N/A self height NAI N/A N/A self x NAI N/A N/A self y NAI N/A N/A self url None N/A N/A N/A Image __init__ self N/A setReusableProperties N/A N/A self backgroundColor borderColor borderStyle borderWidth dWidth dHeight xD yD url N/A N/A N/A newX N/A int N/A round xD N/A newW N/A int N/A N/A round N/A xD dWidth newX N/A newY N/A int N/A round yD N/A newH N/A int N/A N/A round N/A yD dHeight newY N/A thickness N/A min newW newH N/A newCappedBorderWidthX2 N/A min N/A 2 borderWidth thickness N/A 
        * Note: on a GWT absolute panel, the x,y position of the widget is the
        * upper left corner of the widget's border, so x, y need no adjustment
        * to account for an internal (positive) border. Negative (external)
        * borders expand rectangle equally in all directions, so x,y need to
        * shift back to the upper left corner.  Transparent border
        * emulation sets border width to 0, and adjusts element size and
        * position to mimic border transparency (this rather odd feature is
        * required to workaround the IE6 "transparent border" bug)
        *
         N/A N/A TRANSPARENT_BORDER_COLOR borderColor N/A N/A N/A newCappedBorderWidthX2 0 N/A N/A newX N/A newCappedBorderWidthX2 2 N/A newY N/A newCappedBorderWidthX2 2 N/A newH newCappedBorderWidthX2 N/A newW newCappedBorderWidthX2 N/A newCappedBorderWidthX2 0 N/A borderColor transparent N/A N/A backgroundColor TRANSPARENT_BORDER_COLOR N/A N/A backgroundColor transparent N/A N/A N/A newCappedBorderWidthX2 0 N/A N/A newX N/A newCappedBorderWidthX2 2 N/A newY N/A newCappedBorderWidthX2 2 N/A N/A newH newCappedBorderWidthX2 N/A newW newCappedBorderWidthX2 N/A N/A N/A self cappedBorderWidthX2 newCappedBorderWidthX2 N/A N/A N/A 1 N/A newCappedBorderWidthX2 2 N/A N/A floorBW N/A int N/A newCappedBorderWidthX2 2 N/A ceilBW N/A floorBW 1 N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement borderWidth N/A N/A N/A N/A N/A N/A N/A N/A str floorBW px  N/A str floorBW px  N/A str ceilBW px  N/A str ceilBW px  N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement borderWidth N/A N/A str N/A abs N/A newCappedBorderWidthX2 2 px N/A N/A self cappedBorderWidthX2 newCappedBorderWidthX2 N/A N/A NAI N/A self x N/A N/A N/A N/A N/A self _parent setImagePosition self newX newY N/A N/A self x newX N/A N/A self y newY N/A N/A N/A N/A self x newX N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement left N/A N/A str newX px N/A N/A self x newX N/A N/A N/A self y newY N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement top N/A N/A str newY px N/A N/A self y newY N/A N/A N/A self width newW N/A N/A N/A N/A self setWidth N/A N/A str newW px N/A N/A self width newW N/A N/A N/A self height newH N/A N/A N/A N/A self setHeight N/A N/A str newH px N/A N/A self height newH N/A N/A N/A self backgroundColor backgroundColor N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement backgroundColor backgroundColor N/A N/A self backgroundColor backgroundColor N/A N/A N/A self borderColor borderColor N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement borderColor borderColor N/A N/A self borderColor borderColor N/A N/A N/A self borderStyle borderStyle N/A N/A N/A N/A DOM setStyleAttribute N/A N/A self getElement borderStyle borderStyle N/A N/A self borderStyle borderStyle N/A N/A N/A self url url N/A N/A 
            * WARNING: Redundant setUrls cause leaks in FF 2.0.0.16. So, be
            * particularly careful not to accidentally "double set" a URL to
            * the exact same URL (I did this with a slightly less efficient
            * initialization of my images, and this caused a huge memory
            * leak that I hope to memorialize, and lay to rest forever, here.)
            *
            * Symptoms, in FF 2 only, are those that would occur AS IF the
            * extra setUrl increased the reference count on the (browser
            * cached) image file so that Firefox can't release either it, or
            * any of the img elements that reference it. A very big leak for
            * GChart, since just about everything in a GChart references the
            * exact same blank gif URL.
            *
            * Such symptoms did not occur in IE7, or in FF 2 if the cache
            * has been disabled via "about:config".
            *
            * Search for "massively leak" and below that comment you will
            * find two lines that, if uncommented, make the leak reappear.
            *
             N/A N/A N/A self setUrl url N/A N/A self url url N/A N/A N/A 
* A rendering panel contains subpanels
* for Image-element based graphics rendering, canvas-based graphics
* rendering, and Grid-based compass-aligned label rendering.  <p>
*
* Each rendering panel is joined-at-the-hip with, and provides the
* in-the-browser-realization of, a single corresponding GChart curve
* The one exception to this rule are the system curves used
* internally for rendering chart decorations, which, for reasons of
* efficiency, all share the same rendering panel.  <p>
*
* Rather than clearing the widgets contained in the rendering panel
* and recreating and adding them back as needed (which is expensive)
* the rendering panel can make widgets it employs for these purposes
* invisible when not in use and visible again when they are needed
* (which is usually at least twice as fast).  <p>
*
* <p> In principle, this is less memory efficient, but in
* practice, due to the fact that there is less likelyhood of
* fragmentation with reuse than with relying of the garbage
* collector, it could even be more memory efficient.
*
* <p>
*
* When a canvas factory is specified by the developer, the panel
* will include a single canvas widget, where most of the graphical
* elements associated with the curve that uses this rendering panel
* will be drawn.  GChart's canvas support is not yet up to the task
* of rendering everything--it renders only those aspects of the
* chart where canvas rendering provides the biggest quality/speed
* advantages.  So, even if a canvas factory has been provided, many
* aspects of a curve (e.g. the rectangles in bar charts) will still
* be rendered with Image elements.
*
 GraphicsRenderingPanel N/A AbsolutePanel N/A maybeAddCanvas N/A N/A self N/A N/A N/A canvasFactory N/A N/A N/A self chart getCanvasFactory N/A N/A N/A None canvasFactory N/A None N/A self canvas N/A N/A N/A self canvas N/A N/A canvasFactory create N/A N/A None N/A self canvas N/A N/A N/A isinstance N/A self canvas Widget N/A N/A 
                    * The next line is only needed for IE; it is needed to work-around a
                    * GWTCanvas bug that improperly shifts the x-placement of rendered
                    * graphics when a GChart is placed into a non-left-aligned Grid cell
                    * (GChart uses Grid Widgets to implement its annotations feature, so a
                    * GChart placed as an annotation on another GChart, as would occur with
                    * an inset or popup chart, will end up within an aligned Grid).
                    * <p>
                    *
                    * See also TestGChart46.java, which reproduces the GWTCanvas bug.
                    *
                     N/A N/A N/A DOM setElemAttribute N/A N/A N/A self canvas getElement align left N/A N/A N/A N/A self canvasPanel add N/A self canvas 0 0 N/A N/A N/A IllegalStateException N/A N/A Your canvas factory's create method did not return  either None or a GWT Widget, as required. See the  GChart.setCanvasFactory method javadocs for details. N/A __init__ N/A N/A self chart N/A kwargs N/A N/A N/A self chart chart N/A N/A self canvas None N/A N/A self x0 0 N/A N/A self y0 0 N/A N/A self canvasWidth 0 N/A N/A self canvasHeight 0 N/A N/A self canvasPanel N/A AbsolutePanel N/A N/A self imagePanel N/A PartitionedAbsolutePanel N/A N/A self imageIndex 0 N/A N/A self lastVisibleImage -1 N/A N/A N/A AbsolutePanel __init__ self kwargs N/A N/A N/A GChartUtil setOverflow N/A self canvasPanel visible N/A N/A N/A GChartUtil setOverflow N/A self imagePanel visible N/A N/A N/A N/A self canvasPanel setPixelSize 0 0 N/A N/A N/A N/A self imagePanel setPixelSize 0 0 N/A N/A N/A self add N/A self canvasPanel 0 0 N/A N/A N/A self add N/A self imagePanel 0 0 N/A getCanvas N/A N/A self N/A N/A N/A N/A self canvas N/A setImagePosition N/A N/A self img x y N/A N/A N/A N/A N/A x -1 N/A y -1 N/A N/A x 0 N/A N/A N/A N/A self imagePanel setWidgetPosition img x y N/A beginRendering N/A N/A self canvasRegion N/A N/A N/A N/A None N/A self canvas N/A N/A N/A None canvasRegion N/A N/A N/A N/A N/A self canvas resize 0 0 N/A N/A self canvasWidth N/A self canvasHeight 0 N/A N/A width N/A int N/A round N/A canvasRegion width N/A height N/A int N/A round N/A canvasRegion height N/A N/A N/A width N/A self canvasWidth N/A height N/A self canvasHeight N/A N/A N/A N/A N/A self canvas clear N/A N/A N/A N/A N/A self canvas resize width height N/A N/A self canvasWidth width N/A N/A self canvasHeight height N/A N/A self x0 N/A int N/A round N/A canvasRegion x N/A N/A self y0 N/A int N/A round N/A canvasRegion y N/A N/A N/A N/A self x0 -1 N/A N/A self y0 -1 N/A N/A N/A self x0 0 N/A N/A N/A N/A self canvasPanel setWidgetPosition N/A self canvas N/A self x0 N/A self y0 N/A N/A self imageIndex 0 N/A endRendering N/A N/A self N/A N/A N/A N/A N/A self chart optimizeForMemory N/A N/A iImage N/A N/A N/A N/A self imagePanel getWidgetCount 1 N/A N/A iImage N/A self lastVisibleImage N/A N/A iImage N/A self imageIndex N/A N/A w N/A N/A N/A self imagePanel getWidget iImage N/A N/A N/A self chart optimizeForMemory N/A N/A N/A N/A N/A self imagePanel remove iImage N/A N/A N/A N/A DOM setStyleAttribute N/A N/A w getElement visibility hidden N/A iImage 1 N/A N/A self lastVisibleImage N/A N/A self imageIndex 1 N/A N/A  Speedier, reusable, rendering-panel-managed images. In effect,
    turns image panel into a specialized memory manager.  addOrRevealImage N/A N/A self backgroundColor borderColor borderStyle borderWidth width height x y url N/A N/A N/A N/A N/A self imageIndex N/A N/A N/A self imagePanel getWidgetCount N/A N/A img N/A N/A N/A self imagePanel getWidget N/A self imageIndex N/A N/A N/A self imageIndex N/A self lastVisibleImage N/A N/A N/A N/A DOM setStyleAttribute N/A N/A img getElement visibility N/A N/A img N/A ReusableImage self N/A N/A N/A N/A self imagePanel add img N/A N/A N/A img setReusableProperties backgroundColor borderColor borderStyle borderWidth width height x y url N/A N/A N/A self lastVisibleImage N/A self imageIndex N/A N/A N/A self lastVisibleImage N/A self imageIndex N/A N/A self imageIndex 1 N/A renderBorderedImage N/A N/A self backgroundColor borderColor borderStyle borderWidth width height x y url N/A N/A N/A N/A N/A self addOrRevealImage backgroundColor borderColor borderStyle borderWidth width height x y url N/A N/A N/A DECORATIVE_RENDERING_PANEL_INDEX 0 PlotPanel N/A AbsolutePanel N/A __init__ N/A N/A self chart N/A kwargs N/A N/A N/A self chart chart N/A N/A self touchedPoint None N/A N/A self touchedHoverWidget None N/A N/A self insideHoverUpdate False N/A N/A self insideHoverCleanup False N/A N/A self xMax N/A Double NaN N/A N/A self xMin N/A Double NaN N/A N/A self y2Max N/A Double NaN N/A N/A self y2Min N/A Double NaN N/A N/A self yMax N/A Double NaN N/A N/A self yMin N/A Double NaN N/A N/A self clientX NAI N/A N/A self clientY NAI N/A N/A self xMouse NAI N/A N/A self yMouse NAI N/A N/A self graphicsPanel N/A AbsolutePanel N/A N/A self annotationPanel N/A AbsolutePanel N/A N/A N/A AbsolutePanel __init__ self kwargs N/A N/A N/A GChartUtil setOverflow self visible N/A N/A N/A GChartUtil setOverflow N/A self graphicsPanel visible N/A N/A N/A GChartUtil setOverflow N/A self annotationPanel visible N/A N/A N/A N/A self graphicsPanel setPixelSize 0 0 N/A N/A N/A N/A self annotationPanel setPixelSize 0 0 N/A N/A N/A self add N/A self graphicsPanel 0 0 N/A N/A N/A self add N/A self annotationPanel 0 0 N/A N/A N/A self sinkEvents N/A N/A N/A N/A Event ONMOUSEMOVE N/A Event ONMOUSEOUT N/A Event ONCLICK N/A Event ONMOUSEOVER N/A N/A 
    * Adds a sub-panel of this plot panel that contains the widgets
    * used to render the graphical parts of the given curve
    * <p>
    *
    * This method must be called just after a curve is added to
    * the chart, to add it's associated graphics rendering panel
    * GChart assumes each curve (except internal decoration rendering
    * curves, which share a single rendering panel for efficiency)
    * already has an corresponding, unique, rendering panel available
    * and ready to go during updates.
    *
     addGraphicsRenderingPanel N/A N/A self rpIndex N/A N/A N/A domInsert True N/A w N/A GraphicsRenderingPanel N/A self chart N/A N/A N/A DECORATIVE_RENDERING_PANEL_INDEX rpIndex N/A N/A N/A self chart isHoverFeedbackRenderingPanel rpIndex N/A N/A N/A N/A self chart getClipToPlotArea N/A N/A N/A N/A w setPixelSize 0 0 N/A N/A N/A GChartUtil setOverflow w visible N/A N/A N/A N/A w setPixelSize N/A N/A self getXChartSize N/A N/A self getYChartSize N/A N/A N/A GChartUtil setOverflow w hidden N/A N/A N/A N/A self graphicsPanel insert w N/A N/A N/A self graphicsPanel getElement rpIndex N/A N/A N/A N/A self graphicsPanel setWidgetPosition w 0 0 N/A N/A 
    * Adds a sub-panel of this plot panel that contains the widgets
    * used to render the annnotations of the given curve
    * <p>
    *
    * This method must be called just after a curve is
    * added to the chart, to add it's associated annotation
    * rendering panel; GChart assumes each curve has a
    * correspondingly indexed rendering panel during updates.
    *
     addAnnotationRenderingPanel N/A N/A self rpIndex N/A N/A N/A domInsert True N/A w N/A AnnotationRenderingPanel N/A self chart N/A N/A N/A N/A self annotationPanel insert w N/A N/A N/A self annotationPanel getElement rpIndex N/A N/A N/A N/A self annotationPanel setWidgetPosition w 0 0 N/A N/A 
    * Removes the rendering panel of the curve with the given
    * internal index on the curves list.
    * <p>
    *
    * This method must be called just before a curve is removed
    * from the chart, to remove the widgets used to render
    * that curve in the browser.
    *
     removeGraphicsRenderingPanel N/A N/A self rpIndex N/A N/A N/A N/A N/A N/A self graphicsPanel remove rpIndex N/A removeAnnotationRenderingPanel N/A N/A self rpIndex N/A N/A N/A N/A N/A N/A self annotationPanel remove rpIndex N/A N/A 
    * Returns panel used to render the graphical and textual element of
    * the curve with the given internal index within the browser.
    *
     getGraphicsRenderingPanel N/A N/A self rpIndex N/A N/A N/A N/A 0 N/A N/A N/A self graphicsPanel getWidgetCount N/A N/A i N/A range N/A N_PRE_SYSTEM_CURVES 1 N/A len N/A N/A self chart curves N/A N/A rpInd N/A N/A N/A self chart getRenderingPanelIndex i N/A N/A N/A self addGraphicsRenderingPanel rpInd N/A N/A N/A N/A self graphicsPanel getWidget rpIndex N/A getAnnotationRenderingPanel N/A N/A self rpIndex N/A N/A N/A N/A 0 N/A N/A N/A self annotationPanel getWidgetCount N/A N/A i N/A range N/A N_PRE_SYSTEM_CURVES 1 N/A len N/A N/A self chart curves N/A N/A rpInd N/A N/A N/A self chart getRenderingPanelIndex i N/A N/A N/A self addAnnotationRenderingPanel rpInd N/A N/A N/A N/A self annotationPanel getWidget rpIndex N/A getClientX N/A N/A self N/A N/A N/A N/A self clientX N/A setClientX N/A N/A self clientX isClick N/A N/A N/A 
        * Due to presumed bugs in FF2 and Chrome, space-bar clicking on
        * TestGChart25's "rotate" button produces bogus 0 and/or (in Chrome)
        * seemingly random negative return values from <tt>event.getClient[XY]
        * with the ONCLICK event. IE7 produces correct mouse coordinates for
        * Event.ONCLICK in this case. The bogus coordinates, if not corrected,
        * generate bogus "mouse moved off chart"-like actions (in TestGChart25,
        * Chrome produces inappropriate deselection of the hovered over point
        * after a space-bar invoked update)<p>
        *
        * Workaround is to just ignore any 0 or negative coordinates--thus
        * using the last valid coordinates seen by the chart's mouse tracking
        * code in lieu of the bogus ones.
        *
        * <p>
        *
        * The resulting 1px "partly-dead" band at the top and left edges
        * of the client area due to this workaround (0 is a valid client
        * coordinate) is unlikely to be a significant problem, since
        * clicked-on stuff is rarely clicked on right along the edges
        * of the client area.
        * <p>
        *
         N/A N/A N/A clientX 0 isClick N/A N/A N/A N/A N/A clientX 0 N/A N/A clientX NAI N/A N/A self clientX clientX N/A N/A NAI clientX N/A N/A N/A self xMouse NAI N/A N/A N/A self xMouse N/A N/A N/A N/A Window getScrollLeft clientX N/A N/A self getAbsoluteLeft N/A getClientY N/A N/A self N/A N/A N/A N/A self clientY N/A setClientY N/A N/A self clientY isClick N/A N/A N/A N/A N/A clientY 0 isClick N/A N/A N/A N/A N/A clientY 0 N/A N/A clientY NAI N/A N/A self clientY clientY N/A N/A NAI clientY N/A N/A N/A self yMouse NAI N/A N/A N/A self yMouse N/A N/A N/A N/A Window getScrollTop clientY N/A N/A self getAbsoluteTop N/A N/A 
    * In IE drop-down list boxes, when you enter the dropdown
    * part of the list, client coordinates suddenly become -1, -1
    * (presumably IE's way of saying it won't tell you what they are
    * apparently the dropdown part of the list isn't in the DOM)
    * These repair methods replace such impossible client coordinates
    * with the last valid coordinates.
    * <p>
    *
    * Without this patch, the geometric "within the hover widget"
    * test on GChartExample20a fails in IE7: as soon as user mouses
    * into the dropdown list, the entire hover widget is closed.  <p>
    *
     repairBadClientX N/A N/A self x N/A N/A N/A N/A x 0 N/A N/A N/A self clientX N/A N/A x N/A repairBadClientY N/A N/A self y N/A N/A N/A N/A y 0 N/A N/A N/A self clientY N/A N/A y N/A getXMouse N/A N/A self N/A N/A N/A N/A self xMouse N/A getYMouse N/A N/A self N/A N/A N/A N/A self yMouse N/A getXMousePlotArea N/A N/A self N/A N/A N/A result N/A N/A self xMouse N/A self yAxisEnsembleWidth N/A result N/A getYMousePlotArea N/A N/A self N/A N/A N/A result N/A N/A self yMouse N/A self topMargin N/A result N/A getXAxisEnsembleHeight N/A N/A self N/A N/A N/A N/A self xAxisEnsembleHeight N/A getXMax N/A N/A self N/A N/A N/A N/A self xMax N/A getXMin N/A N/A self N/A N/A N/A N/A self xMin N/A getY2AxisEnsembleWidth N/A N/A self N/A N/A N/A N/A self y2AxisEnsembleWidth N/A getY2Max N/A N/A self N/A N/A N/A N/A self y2Max N/A getY2Min N/A N/A self N/A N/A N/A N/A self y2Min N/A getYAxisEnsembleWidth N/A N/A self N/A N/A N/A N/A self yAxisEnsembleWidth N/A legendThickness N/A N/A self N/A N/A N/A N/A self chartLegendThickness N/A chartFootnotesThickness N/A N/A self N/A N/A N/A N/A self chartFootnotesThickness N/A chartTitleThickness N/A N/A self N/A N/A N/A N/A self topMargin N/A getYMax N/A N/A self N/A N/A N/A N/A self yMax N/A getYMin N/A N/A self N/A N/A N/A N/A self yMin N/A reset N/A N/A self xChartSize yChartSize hasYAxis hasY2Axis xAxis yAxis y2Axis N/A N/A N/A N/A N/A N/A N/A N/A self chart getXAxis maybePopulateTicks N/A N/A N/A N/A N/A N/A self chart getYAxis maybePopulateTicks N/A N/A N/A N/A N/A N/A self chart getY2Axis maybePopulateTicks N/A N/A self xChartSize xChartSize N/A N/A self yChartSize yChartSize N/A axisLimits N/A N/A xAxis getAxisLimits N/A N/A self xMin N/A axisLimits min N/A N/A self xMax N/A axisLimits max N/A axisLimits N/A N/A yAxis getAxisLimits N/A N/A self yMin N/A axisLimits min N/A N/A self yMax N/A axisLimits max N/A axisLimits N/A N/A y2Axis getAxisLimits N/A N/A self y2Min N/A axisLimits min N/A N/A self y2Max N/A axisLimits max N/A N/A self topMargin N/A N/A N/A self chart getChartTitleThickness N/A N/A self xAxisEnsembleHeight N/A N/A N/A N/A N/A xAxis getAxisLabelThickness N/A N/A xAxis getTickLabelThickness False N/A N/A xAxis getTickSpace N/A N/A xAxis getTickLabelPadding N/A N/A self yAxisEnsembleWidth N/A N/A N/A N/A N/A yAxis getAxisLabelThickness N/A N/A yAxis getTickLabelThickness False N/A N/A yAxis getTickSpace N/A N/A yAxis getTickLabelPadding N/A N/A self y2AxisEnsembleWidth N/A N/A N/A N/A N/A y2Axis getAxisLabelThickness N/A N/A y2Axis getTickLabelThickness False N/A N/A y2Axis getTickSpace N/A N/A y2Axis getTickLabelPadding N/A N/A self chartLegendThickness N/A N/A N/A self chart getLegendThickness N/A N/A self chartFootnotesThickness N/A N/A N/A self chart getChartFootnotesThickness N/A N/A N/A self setPixelSize N/A N/A self getXChartSizeDecoratedQuickly N/A N/A self getYChartSizeDecoratedQuickly N/A N/A N/A self setWidgetPosition N/A self graphicsPanel N/A self yAxisEnsembleWidth N/A self topMargin N/A N/A N/A self setWidgetPosition N/A self annotationPanel N/A self yAxisEnsembleWidth N/A self topMargin N/A i N/A range N/A N/A self getRenderingPanelCount N/A N/A grp N/A N/A N/A self graphicsPanel getWidget i N/A N/A N/A DECORATIVE_RENDERING_PANEL_INDEX i N/A N/A N/A self chart isHoverFeedbackRenderingPanel i N/A N/A N/A N/A self chart getClipToPlotArea N/A N/A N/A N/A grp setPixelSize 0 0 N/A N/A N/A GChartUtil setOverflow grp visible N/A N/A N/A N/A grp setPixelSize N/A N/A self getXChartSize N/A N/A self getYChartSize N/A N/A N/A GChartUtil setOverflow grp hidden N/A xToChartPixel N/A N/A self x N/A N/A N/A result N/A Double NaN N/A N/A N/A N/A Double MAX_VALUE x N/A N/A result N/A self yAxisEnsembleWidth N/A N/A N/A N/A Double MAX_VALUE x N/A N/A result N/A N/A N/A self yAxisEnsembleWidth N/A self xChartSize 1.0 N/A N/A N/A N/A N/A Double NaN x N/A N/A result N/A N/A N/A N/A self yAxisEnsembleWidth N/A N/A self xMax x N/A N/A N/A N/A self yAxisEnsembleWidth N/A self xChartSize 1.0 N/A x N/A self xMin N/A N/A self xMax N/A self xMin N/A result N/A xToPixel N/A N/A self x N/A N/A N/A result N/A Double NaN N/A N/A N/A N/A Double MAX_VALUE x N/A N/A result 0 N/A N/A N/A N/A Double MAX_VALUE x N/A N/A result N/A N/A self xChartSize 1.0 N/A N/A N/A N/A N/A Double NaN x N/A N/A result N/A N/A N/A N/A self xChartSize 1.0 N/A x N/A self xMin N/A N/A self xMax N/A self xMin N/A result N/A xChartPixelToX N/A N/A self xPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI xPx N/A N/A self xChartSize 1 N/A N/A result N/A N/A self xMin N/A N/A N/A N/A self xMax N/A self xMin N/A xPx N/A self yAxisEnsembleWidth N/A N/A self xChartSize 1.0 N/A result N/A xPixelToX N/A N/A self xPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI xPx N/A N/A self xChartSize 1 N/A N/A result N/A N/A self xMin N/A N/A N/A N/A self xMax N/A self xMin xPx N/A N/A self xChartSize 1.0 N/A result N/A dxToPixel N/A N/A self dx N/A N/A N/A result N/A N/A dx N/A N/A self xChartSize 1 N/A N/A self xMax N/A self xMin N/A result N/A yToChartPixel N/A N/A self y isY2 N/A N/A N/A isY2 N/A N/A minY N/A self y2Min N/A maxY N/A self y2Max N/A N/A minY N/A self yMin N/A maxY N/A self yMax N/A result N/A Double NaN N/A N/A N/A N/A Double MAX_VALUE y N/A N/A result N/A N/A N/A self yChartSize N/A self topMargin 1.0 N/A N/A N/A N/A Double MAX_VALUE y N/A N/A result N/A self topMargin N/A N/A N/A N/A N/A Double NaN y N/A N/A result N/A N/A N/A N/A self topMargin N/A y minY N/A N/A N/A N/A self yChartSize N/A self topMargin 1.0 N/A maxY y N/A maxY minY N/A result N/A yToPixel N/A N/A self y isY2 N/A N/A N/A isY2 N/A N/A minY N/A self y2Min N/A maxY N/A self y2Max N/A N/A minY N/A self yMin N/A maxY N/A self yMax N/A result N/A Double NaN N/A N/A N/A N/A Double MAX_VALUE y N/A N/A result N/A N/A self yChartSize 1.0 N/A N/A N/A N/A Double MAX_VALUE y N/A N/A result 0 N/A N/A N/A N/A N/A Double NaN y N/A N/A result N/A N/A N/A N/A self yChartSize 1.0 N/A maxY y N/A maxY minY N/A result N/A yChartPixelToY N/A N/A self yPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI yPx N/A N/A self yChartSize 1 N/A N/A result N/A N/A self yMax N/A N/A N/A N/A self yMin N/A self yMax N/A yPx N/A self topMargin N/A N/A self yChartSize 1.0 N/A result N/A yPixelToY N/A N/A self yPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI yPx N/A N/A self yChartSize 1 N/A N/A result N/A N/A self yMax N/A N/A N/A N/A self yMin N/A self yMax yPx N/A N/A self yChartSize 1.0 N/A result N/A yChartPixelToY2 N/A N/A self yPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI yPx N/A N/A self yChartSize 1 N/A N/A result N/A N/A self y2Max N/A N/A N/A N/A self y2Min N/A self y2Max N/A yPx N/A self topMargin N/A N/A self yChartSize 1.0 N/A result N/A yPixelToY2 N/A N/A self yPx N/A N/A N/A result N/A Double NaN N/A N/A N/A NAI yPx N/A N/A self yChartSize 1 N/A N/A result N/A N/A self y2Max N/A N/A N/A N/A self y2Min N/A self y2Max yPx N/A N/A self yChartSize 1.0 N/A result N/A dyToPixel N/A N/A self dy isY2 N/A N/A N/A isY2 N/A N/A minY N/A self y2Min N/A maxY N/A self y2Max N/A N/A minY N/A self yMin N/A maxY N/A self yMax N/A result N/A N/A dy N/A N/A self yChartSize 1 N/A maxY minY N/A result N/A getOpenedHoverContainer N/A N/A self N/A N/A N/A result None N/A c N/A N/A N/A self chart getSystemCurve HOVER_ANNOTATION_ID N/A N/A N/A N/A self touchedPoint None N/A N/A c isVisible N/A N/A internalIndex N/A N/A N/A self chart getInternalCurveIndex c N/A rpIndex N/A N/A N/A self chart getRenderingPanelIndex internalIndex N/A arp N/A N/A self getAnnotationRenderingPanel rpIndex N/A result N/A N/A arp getFirstInnerAlignedLabel N/A result N/A getOpenedHoverElement N/A N/A self N/A N/A N/A hoverContainer N/A N/A self getOpenedHoverContainer N/A N/A N/A hoverContainer N/A N/A hoverContainer getElement None N/A N/A 
    * Configures GChart's special selection cursor and
    * hover annotation "system curves" so that they
    * provide appropriate feedback associated with "touching" the
    * given point with the mouse. When rendered, these curves
    * will:
    * <p>
    *
    * <ol>
    * <li> Highlight the selected point in accord with specified hover
    * selection options
    * <p>
    * <li> Display a point-specific hover annotation, in accord with
    * various hover annotation related options.
    *
    * </ol>
    *
    * <p>
    *
    * Also executes <tt>hoverCleanup</tt> on any hover widget
    * associated with the previously touched point, and
    * <tt>hoverUpdate</tt> on any hover widget associated with the
    * newly touched point, and maintains up-to-date references to the
    * last touched point and last touched hover widget.
    *
     touch N/A N/A self p N/A N/A N/A prevTouchedPoint N/A self touchedPoint N/A N/A self touchedPoint p N/A cAnnotation N/A N/A N/A self chart getSystemCurve HOVER_ANNOTATION_ID N/A cCursor N/A N/A N/A self chart getSystemCurve HOVER_CURSOR_ID N/A cTouched N/A N/A p N/A N/A p getParent None N/A N/A None N/A self touchedHoverWidget N/A N/A N/A N/A self insideHoverCleanup N/A N/A N/A N/A N/A self insideHoverCleanup True N/A N/A N/A N/A self touchedHoverWidget hoverCleanup prevTouchedPoint N/A N/A N/A N/A N/A N/A self insideHoverCleanup False N/A N/A self touchedHoverWidget N/A N/A cTouched N/A N/A N/A N/A cTouched getSymbol getHoverWidget None N/A N/A None N/A self touchedHoverWidget N/A N/A N/A None p N/A N/A hovertext N/A N/A p getHovertext N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationText hovertext N/A N/A N/A N/A N/A cTouched getSymbol getHoverAnnotation widthUpperBound N/A N/A N/A N/A N/A cTouched getSymbol getHoverAnnotation heightUpperBound N/A N/A N/A N/A self insideHoverUpdate N/A N/A N/A N/A N/A self insideHoverUpdate True N/A N/A N/A N/A self touchedHoverWidget hoverUpdate p N/A N/A N/A N/A N/A N/A self insideHoverUpdate False N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationWidget N/A self touchedHoverWidget N/A N/A N/A N/A N/A cTouched getSymbol getHoverAnnotation widthUpperBound N/A N/A N/A N/A N/A cTouched getSymbol getHoverAnnotation heightUpperBound N/A N/A None p N/A N/A N/A N/A cAnnotation setVisible False N/A N/A N/A cCursor setVisible False N/A N/A N/A N/A N/A N/A N/A cTouched getSymbol getHoverAnnotationEnabled N/A N/A N/A N/A cAnnotation setVisible False N/A N/A N/A N/A cAnnotation setVisible True N/A N/A N/A cAnnotation setYAxis N/A N/A cTouched getYAxis N/A N/A N/A N/A N/A cAnnotation getPoint 0 setX N/A N/A p getX N/A N/A N/A N/A N/A cAnnotation getPoint 0 setY N/A N/A p getY N/A N/A N/A N/A N/A cAnnotation getSymbol copy N/A N/A cTouched getSymbol N/A N/A N/A N/A N/A cAnnotation getSymbol setImageURL DEFAULT_BLANK_IMAGE_URL_FULLPATH N/A N/A N/A N/A N/A cAnnotation getSymbol setBackgroundColor transparent N/A N/A N/A N/A N/A cAnnotation getSymbol setBorderColor TRANSPARENT_BORDER_COLOR N/A N/A None N/A N/A N/A N/A cTouched getSymbol getHoverAnnotationSymbolType N/A N/A N/A N/A N/A N/A cAnnotation getSymbol setSymbolType N/A N/A N/A N/A cTouched getSymbol getHoverAnnotationSymbolType N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationFontColor N/A N/A N/A N/A cTouched getSymbol getHoverFontColor N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationFontSize N/A N/A N/A N/A cTouched getSymbol getHoverFontSize N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationFontStyle N/A N/A N/A N/A cTouched getSymbol getHoverFontStyle N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationFontWeight N/A N/A N/A N/A cTouched getSymbol getHoverFontWeight N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationLocation N/A N/A N/A N/A cTouched getSymbol getHoverLocation N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationXShift N/A N/A N/A N/A cTouched getSymbol getHoverXShift N/A N/A N/A N/A N/A cAnnotation getPoint 0 setAnnotationYShift N/A N/A N/A N/A cTouched getSymbol getHoverYShift N/A N/A N/A N/A N/A N/A cTouched getSymbol getHoverSelectionEnabled N/A N/A N/A N/A cCursor setVisible False N/A N/A N/A N/A cCursor setVisible True N/A N/A N/A cCursor setYAxis N/A N/A cTouched getYAxis N/A N/A N/A N/A N/A cCursor getPoint 0 setX N/A N/A p getX N/A N/A N/A N/A N/A cCursor getPoint 0 setY N/A N/A p getY N/A N/A N/A N/A N/A cCursor getSymbol copy N/A N/A cTouched getSymbol N/A N/A None N/A N/A N/A N/A cTouched getSymbol getHoverSelectionSymbolType N/A N/A N/A N/A N/A N/A cCursor getSymbol setSymbolType N/A N/A N/A N/A cTouched getSymbol getHoverSelectionSymbolType N/A fillSpacing N/A N/A N/A N/A cTouched getSymbol getHoverSelectionFillSpacing N/A N/A N/A N/A Double NaN fillSpacing N/A N/A N/A N/A N/A N/A cCursor getSymbol setFillSpacing fillSpacing N/A fillThickness N/A N/A N/A N/A cTouched getSymbol getHoverSelectionFillThickness N/A N/A NAI fillThickness N/A N/A N/A N/A N/A N/A cCursor getSymbol setFillThickness fillThickness N/A N/A NAI N/A N/A N/A N/A cTouched getSymbol getHoverSelectionHeight N/A N/A N/A N/A N/A N/A cCursor getSymbol setHeight N/A N/A N/A N/A cTouched getSymbol getHoverSelectionHeight N/A N/A NAI N/A N/A N/A N/A cTouched getSymbol getHoverSelectionWidth N/A N/A N/A N/A N/A N/A cCursor getSymbol setWidth N/A N/A N/A N/A cTouched getSymbol getHoverSelectionWidth N/A N/A N/A N/A N/A cCursor getSymbol setImageURL N/A N/A N/A N/A cTouched getSymbol getHoverSelectionImageURL N/A N/A N/A N/A N/A cCursor getSymbol setBackgroundColor N/A N/A N/A N/A cTouched getSymbol getHoverSelectionBackgroundColor N/A N/A N/A N/A N/A cCursor getSymbol setBorderColor N/A N/A N/A N/A cTouched getSymbol getHoverSelectionBorderColor N/A N/A N/A N/A N/A cCursor getSymbol setBorderStyle N/A N/A N/A N/A cTouched getSymbol getHoverSelectionBorderStyle N/A borderWidth N/A N/A N/A N/A cTouched getSymbol getHoverSelectionBorderWidth N/A N/A N/A N/A N/A cCursor getSymbol setBorderWidth borderWidth N/A N/A 
    * Is the given target element contained within the given container?
    * (tried isOrHasChild but was getting exceptions in FF2 I could
    *  not track to their source, so I just stuck with this)
     isContainedIn N/A N/A self container et N/A N/A N/A N/A container None N/A N/A False N/A N/A N/A DOM isOrHasChild et container N/A part et N/A 
        * In Chrome and FF2, the next line makes dropdown lists inside
        * hover widgets work more correctly when they click on the
        * dropdown part of the list. Otherwise, hover widget can close
        * inappropriately. As tested in GChartExample20a.java
        *
         N/A N/A None part N/A N/A True N/A N/A N/A ancestor part N/A N/A N/A ancestor None N/A container None N/A N/A N/A N/A DOM isSameNode container ancestor N/A N/A True N/A ancestor N/A N/A ancestor getParentElement N/A N/A N/A N/A 
            * In FF2, we get the error "Error: uncaught exception: Permission
            * denied to get property HTMLDivElement.parentNode" if a TextBox is
            * placed into the chart x axis label and you mouse over that textbox
            * (as reported by secnoc in issue #24, which has additional useful info
            * about the likely cause of this problem; TestGChart44.java reproduces
            * this behavior if this try/catch is removed).
            *
            * Returning True, which will act as if the element is contained in the
            * GChart, has "cruft possibilities" as in some cases a hoverwidget may
            * not get closed when user mouses completely out of the GChart, onto a
            * TextBox, but should otherwise be a lesser evil than False or an
            * uncaught exception.
            *
             N/A True N/A False N/A N/A 
    * Is given mouse client point geometrically "inside" container?
    * <p>
    *
    * Note: Certain widgets, like drop-down lists, SuggestBox, etc.
    * implicitly create popups that are not children of the chart, and
    * thus when the user moves into these popups, a mouseout that
    * looks like they are leaving the hover widget or chart, and
    * thus inappropriately hides it can often make hover widgets
    * involving such elements unusable.
    *
    * <p>
    *
    * But, by adding a geometric condition to define "being out of
    * the chart or hover widget", hover widgets that use such popups
    * can avoid such inappropriate hiding as long as the popups remain
    * geometrically within either the chart as a whole, or the hover
    * widget itself.  For example a form with drop-down lists is OK
    * as long as the drop down lists don't extrude off the form
    * when they drop down.<p>
    *
    * Unfortunately, this creates another problem, in that hover
    * widgets that extrude off the chart can remain open when the user
    * mouses off the chart in such a way that the mouseout occurs at a
    * point geometrically within the hover widget. We consider this
    * small amount of "hover cruft" a lesser evil than not being able
    * to use dropdown lists and such within hover widgets at all.
    * <p>
    *
    * Often a more natural solution, rather than wrestling with such
    * "geometrical popup containment", is a click-invoked modal
    * dialog. But that has a distinctly different feel than the more
    * nearly modeless hover widget, so I thought there was room/need
    * for both approaches.
    *
     isGeometricallyContainedIn N/A N/A self container clientX clientY N/A N/A N/A N/A None container N/A N/A N/A IllegalArgumentException Container cannot be None N/A result False N/A 
        * Equations below shrink container 1px around its perimeter,
        * to account for apparent roundoff errors in FF2 associated
        * with window scrolling. FF2 mouseout events get dropped
        * (about half the time, with random scroll position choices
        * hence my roundoff suspicions--problem did not occur in
        * Chrome or IE7) without this 1px shrinkage. End users can't
        * discriminate a 1px mouse shift anyway, so there is no
        * real downside (except that you had to read this comment)
        * to using this workaround.
        *
         N/A y N/A N/A N/A Window getScrollTop N/A N/A self repairBadClientY clientY N/A absTop N/A N/A DOM getAbsoluteTop container N/A N/A N/A absTop y N/A N/A y 1 N/A absTop N/A N/A DOM getOffsetHeight container N/A N/A x N/A N/A N/A Window getScrollLeft N/A N/A self repairBadClientX clientX N/A absLeft N/A N/A DOM getAbsoluteLeft container N/A N/A N/A absLeft x N/A N/A x 1 N/A absLeft N/A N/A DOM getOffsetWidth container N/A N/A result True N/A result N/A touchObjectAtMousePosition N/A N/A self retouch N/A False N/A N/A result False N/A pointAtPosition N/A N/A N/A self chart getClosestBrushTouchingPointNoCheck N/A N/A self getXMousePlotArea N/A N/A self getYMousePlotArea N/A N/A N/A pointAtPosition N/A self touchedPoint retouch N/A N/A N/A N/A self touch pointAtPosition N/A result True N/A result N/A retouchObjectAtMousePosition N/A N/A self N/A N/A N/A N/A N/A self touchObjectAtMousePosition True N/A N/A 
    * Does the event occur over the currently opened hover
    * annotation?
    *
    * This method helps us to ignore mouse clicks and moves over a
    * "sticky-open" hover annotation, or one of its children. Idea
    * is to prevent the hover feedback from jumping to another
    * point while the user interacts with an opened hover widget.
    * <p>
    *
    * This is not just important for hover annotations that contain
    * buttons and such, but even for hover annotations based on
    * text, since the user might want to select/copy that
    * text (involving mouse moves) for example.
    *
    *
     isOverOpenedHoverAnnotation N/A N/A self event N/A N/A N/A result False N/A hoverElement N/A N/A self getOpenedHoverElement N/A N/A None hoverElement N/A N/A N/A N/A self isContainedIn hoverElement N/A N/A DOM eventGetTarget event N/A N/A result True N/A N/A N/A N/A self isGeometricallyContainedIn hoverElement N/A N/A DOM eventGetClientX event N/A N/A DOM eventGetClientY event N/A N/A result True N/A result N/A N/A 
    * Does event (assumed a MOUSEOUT) take the mouse completely
    * outside of the current chart?
    * <p>
    *
    * To be completely outside the chart, the event must be both not
    * associated with any child element of the chart (as represented
    * in the DOM) and geometrically outside of the chart's "box" and
    * the "box" of any currently opened hover annotation.  <p>
    *
    * Because a GChart is rendered with many DOM elements, moving
    * the mouse across it generates many MOUSEOUT events. This
    * method lets us focus on only those that take us completely off
    * the chart, and thus require the hover feedback to be turned
    * off.
    * <p>
    *
    *
    *
     takesUsCompletelyOutsideChart N/A N/A self event N/A N/A N/A result True N/A N/A N/A self isContainedIn N/A N/A self getElement N/A N/A DOM eventGetToElement event N/A N/A  hoverElement is always a descendant of the main chart element due to
            * how GChart generates it, so if this branch isn't reached, toElement
            * is not contained in either chart or the opened hover annotation  N/A result False N/A N/A N/A N/A self isGeometricallyContainedIn N/A N/A self getElement N/A N/A DOM eventGetClientX event N/A N/A DOM eventGetClientY event N/A N/A result False N/A N/A hoverElement N/A N/A self getOpenedHoverElement N/A N/A None hoverElement N/A N/A N/A N/A self isGeometricallyContainedIn hoverElement N/A N/A DOM eventGetClientX event N/A N/A DOM eventGetClientY event N/A N/A result False N/A result N/A N/A *
    * Fired whenever a browser event is recieved.
    * <p>
    *
    * GChart keeps track of browser mouse-moves, mouse-outs,
    * mouse-overs, and mouse clicks and will automatically provide
    * appropriate hover feedback whenever the mouse "touches"
    * rendered symbols on the chart. It also maintains a reference
    * to the "currently touched" point which you can retrieve via
    * the <tt>getTouchedPoint</tt> method.  <p>
    *
    * GChart never "eats" mouse events (it just watches them go by,
    * and keeps track of what the mouse-anchored brush is touching)
    * so containing Widgets can track and respond to the same mouse
    * event stream after GChart does, if they want to.
    *
    * <p>
    *
    * Each curve's symbol can configure how hover feedback is
    * displayed via the <tt>setHover*</tt> family of methods and the
    * related HoverUpdateable and HoverParameterInterpreter
    * interfaces. In addition, GChart implements the standard
    * GWT <tt>SourcesClickEvents</tt> interface, so you
    * can easily implement <tt>ClickListener.onClick</tt>
    * to be notified of user clicks on a GChart, using
    * <tt>getTouchedPoint</tt> to grab the clicked-on point.
    * <p>
    *
    * This method can only properly track events when
    * <tt>isUpdateNeeded</tt> returns False (implies DOM/GChart
    * specs are in synch) so if you want this tracking system to
    * work as intended, you need to be sure to always call
    * <tt>update</tt> after making a series of chart specification
    * changes, just before you give control back to the browser.
    *
    *
    * @param event the browser event that GChart will monitor
    * so as to maintain a reference to the "touched" point and
    * provide appropriate hover feedback.
    *
    * @see #touch touch
    * @see #getTouchedPoint getTouchedPoint
    * @see #setHoverWidget setHoverWidget
    * @see #setHovertextTemplate setHovertextTemplate
    * @see #setHoverAnnotationEnabled setHoverAnnotationEnabled
    * @see #setHoverSelectionEnabled setHoverSelectionEnabled
    * @see HoverUpdateable HoverUpdateable
    * @see #setHoverParameterInterpreter setHoverParameterInterpreter
    * @see HoverParameterInterpreter HoverParameterInterpreter
    * @see #isUpdateNeeded isUpdateNeeded
    * @see #update update
    *
     onBrowserEvent N/A N/A self event N/A N/A N/A N/A N/A AbsolutePanel onBrowserEvent self event N/A 
        * The tracking of the mouse position depends on if there are
        * opened hover annotations or not (mouse moves over such
        * annotations don't get tracked, and thus don't change the
        * "touched" point). However, all of that dependency can be
        * determined by the current DOM rendering of the chart--there
        * is no need to look at actual chart specs.  <p>
        *
        * So, when the DOM/chart specs are inconsistent (chart "needs
        * update") we continue to perform mouse tracking based on the
        * <i>last completed DOM rendering</i> of the chart (that is,
        * the last <tt>assembleChart</tt> call).  However, actual
        * changes to the chart are "frozen" (as assured by the
        * <tt>!isUpdateNeeded</tt> test below) so no DOM changes
        * occur automatically in response to mouse moves over things
        * (e.g. no changes to hover feedback occur--that's frozen,
        * too). In short, we track, but do not act.
        *
        * <p>
        *
        * We can think of it this way: mouse tracking remains
        * consistent with the <i>last DOM rendered</i> specification
        * and then it is as if all of the accumulated specification
        * changes are applied to the DOM at that point in time when
        * the next (developer invoked) update occurs. That means
        * there is exactly one point in time of "unpredictable
        * change" (points previously hovered over can disappear from
        * under the mouse since they have been deleted or moved,
        * etc.). But that discontinuity can be adequately managed by
        * the developer via the <tt>TouchedPointUpdateOption</tt>
        * argument to update.
        * <p>
        *
        * Well, that's the theory. But GChart's mouse tracking has
        * only been tested for the case where <tt>update</tt> is
        * always called just before the developer cedes control back
        * to the browser after making a series of chart spec changes.
        * So, the docs warn developers to be sure that they do
        * that, too. But the hope is that specialized applications
        * where they don't call update until the user explicitly asks
        * for that (say, for a very busy chart with an editing
        * capability and a "refresh" button) will also work OK.
        *
        * <p>
        *
        * Another important consequence of this "track but don't act"
        * approach is that it assures that only cheap/quick
        * operations can be triggered automatically by direct user
        * mousing. Potentially expensive "full chart" updates always
        * require a direct developer update invocation. So, if the
        * system "locks up while it's doing a lengthly update" there
        * will always be an actual developer line of code responsible
        * for that, not some mysteriously event-triggered call.
        *
        *
         N/A eventId N/A N/A DOM eventGetType event N/A  Note that a click that closes a modal DialogBox can
        * generate a mouse location change without an ONMOUSEMOVE,
        * and a point that moves under the mouse due to an update
        * can generate a mouseover without a MOUSEMOVE  N/A isClick N/A click eventId N/A N/A N/A N/A mousemove eventId N/A mouseover eventId isClick N/A N/A N/A self isOverOpenedHoverAnnotation event N/A N/A 
            if "click" == eventId:
                log.debug("CLICK: event.getClientX()=" + str(DOM.eventGetClientX(event)) +
                " event.getClientY()=" + str(DOM.eventGetClientY(event)) +
                " event.getTarget()==self.getElement() is " +
                str(DOM.eventGetTarget(event) == self.getElement()) +
                " event.getCurrentTarget()="+str(DOM.eventGetCurrentTarget(event)) +
                " event.getTarget()=" + str(DOM.eventGetTarget(event)))

            elif "mouseover" == eventId:
                log.debug("MOUSEOVER: event.getClientX()=" + str(DOM.eventGetClientX(event)) +
                " event.getClientY()=" + str(DOM.eventGetClientY(event)) +
                " event.getCurrentTarget()="+str(DOM.eventGetCurrentTarget(event)) +
                " event.getTarget()=" + str(DOM.eventGetTarget(event)))

             N/A N/A N/A N/A N/A self chart getHoverTouchingEnabled isClick N/A N/A N/A N/A self setClientX N/A N/A DOM eventGetClientX event isClick N/A N/A N/A self setClientY N/A N/A DOM eventGetClientY event isClick N/A N/A N/A N/A N/A N/A self chart isUpdateNeeded N/A N/A self touchObjectAtMousePosition isClick N/A N/A N/A N/A N/A self chart assembleChart N/A N/A N/A N/A mouseout eventId N/A N/A N/A self chart getHoverTouchingEnabled N/A N/A self takesUsCompletelyOutsideChart event N/A N/A 
            log.debug("MOUSEOUT: event.getClientX()=" + str(DOM.eventGetClientX(event)) +
                " event.getClientY()=" + str(DOM.eventGetClientY(event)) +
                " event.getCurrentTarget()="+str(DOM.eventGetCurrentTarget(event)) +
                " event.getTarget()=" + str(DOM.eventGetTarget(event)))
             N/A N/A N/A self setClientX NAI False N/A N/A N/A self setClientY NAI False N/A N/A N/A N/A N/A N/A self chart isUpdateNeeded N/A N/A self touchObjectAtMousePosition N/A N/A N/A N/A N/A self chart assembleChart N/A isValidated N/A N/A self N/A N/A N/A result True N/A i 0 N/A N/A result N/A i N/A len N/A N/A self chart curves N/A N/A result N/A N/A N/A N/A N/A self chart curves N/A i isValidated N/A i 1 N/A result N/A N/A 
    * Returns number of "rendering panels" that there actually
    * are right now.
    *
    * GChart's implementation assures that this number is exactly the
    * same for the graphics and annotation rendering panels.
    *
     getRenderingPanelCount N/A N/A self N/A N/A N/A result N/A N/A N/A self graphicsPanel getWidgetCount N/A result N/A getXChartSize N/A N/A self N/A N/A N/A N/A self xChartSize N/A getYChartSize N/A N/A self N/A N/A N/A N/A self yChartSize N/A getXChartSizeDecoratedQuickly N/A N/A self N/A N/A N/A result N/A N/A N/A N/A self xChartSize N/A self yAxisEnsembleWidth N/A self y2AxisEnsembleWidth N/A self chartLegendThickness N/A result N/A getYChartSizeDecoratedQuickly N/A N/A self N/A N/A N/A result N/A N/A N/A N/A self yChartSize N/A self xAxisEnsembleHeight N/A self topMargin N/A self chartFootnotesThickness N/A result N/A N/A