Module Expr Str ImportFrom alias alias alias Import alias ImportFrom alias Assign NameStore Call AttributeLoad NameLoad attr Str TupleLoad Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Assign NameStore Num Assign NameStore Num Assign NameStore Num Assign NameStore Call AttributeLoad NameLoad attr Str TupleLoad Str Str Str Str Str Assign NameStore Call AttributeLoad NameLoad attr Str TupleLoad Str Str FunctionDef arguments args NameParam NameParam defaults body Assign NameStore Call NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad Num FunctionDef arguments args NameParam NameParam defaults body Return CompareIsNot NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call NameLoad BinOpAdd BinOpFloorDiv Call NameLoad NameLoad Num Num NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore NameLoad Assign NameStore BinOpMult ListLoad Call NameLoad NameLoad NameLoad NameLoad Return Call NameLoad Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad BinOpAdd BinOpFloorDiv Call NameLoad NameLoad Num Num NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore BinOpMult ListLoad Call NameLoad NameLoad NameLoad NameLoad Return Call NameLoad Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assert CompareLt NameLoad NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad NameLoad Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpAdd NameLoad Num decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr Num decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareLtE NameLoad NameLoad body Return NameLoad While CompareLt NameLoad NameLoad body Assign NameStore BinOpLShift NameLoad Num Assign NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad orelse Assign NameStore NameLoad Return Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Return Call NameLoad Call NameLoad NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Return CompareLt NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert BoolOpAnd CompareLtE NameLoad NameLoad CompareLtE NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad If CompareEq NameLoad NameLoad body AugAssignAdd NameStore Num While CompareLt NameLoad NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad Assign NameStore NameLoad Assign NameStore NameLoad While CompareLt NameLoad NameLoad body Assign NameStore BinOpAdd NameLoad BinOpRShift BinOpSub NameLoad NameLoad Num If Call NameLoad NameLoad SubscriptLoad NameLoad Index NameLoad body Assign NameStore NameLoad orelse Assign NameStore BinOpAdd NameLoad Num For NameStore Call NameLoad NameLoad NameLoad Num body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num Assign SubscriptStore NameLoad Index NameLoad NameLoad If NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad For NameStore Call NameLoad NameLoad NameLoad Num body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num Assign SubscriptStore NameLoad Index NameLoad NameLoad AugAssignAdd NameStore Num decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assert CompareLt NameLoad NameLoad If CompareEq BinOpAdd NameLoad Num NameLoad body Return TupleLoad Num NameLoad If Call NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num SubscriptLoad NameLoad Index NameLoad body For NameStore Call NameLoad BinOpAdd NameLoad Num NameLoad body If UnaryOpNot Call NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num body Return TupleLoad BinOpSub NameLoad NameLoad NameLoad Return TupleLoad BinOpSub NameLoad NameLoad NameLoad orelse For NameStore Call NameLoad BinOpAdd NameLoad Num NameLoad body If Call NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num body Return TupleLoad BinOpSub NameLoad NameLoad NameLoad Return TupleLoad BinOpSub NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert CompareGt NameLoad NameLoad Assert BoolOpAnd CompareGtE NameLoad NameLoad CompareLt NameLoad NameLoad Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Num Assign NameStore Num If Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad body Assign NameStore BinOpSub NameLoad NameLoad While CompareLt NameLoad NameLoad body If Call NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore BinOpAdd BinOpLShift NameLoad Num Num If CompareLtE NameLoad Num body Assign NameStore NameLoad orelse Break If CompareGt NameLoad NameLoad body Assign NameStore NameLoad AugAssignAdd NameStore NameLoad AugAssignAdd NameStore NameLoad orelse Assign NameStore BinOpAdd BinOpSub NameLoad NameLoad Num While CompareLt NameLoad NameLoad body If Call NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad NameLoad NameLoad body Break orelse Assign NameStore NameLoad Assign NameStore BinOpAdd BinOpLShift NameLoad Num Num If CompareLtE NameLoad Num body Assign NameStore NameLoad If CompareGt NameLoad NameLoad body Assign NameStore NameLoad Assign TupleStore NameStore NameStore TupleLoad BinOpSub NameLoad NameLoad BinOpSub NameLoad NameLoad Assert BoolOpAnd CompareLtE BinOpSub NameLoad Num NameLoad CompareLt NameLoad NameLoad CompareLtE NameLoad NameLoad AugAssignAdd NameStore Num While CompareLt NameLoad NameLoad body Assign NameStore BinOpAdd NameLoad BinOpRShift BinOpSub NameLoad NameLoad Num If Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad body Assign NameStore BinOpAdd NameLoad Num orelse Assign NameStore NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert CompareGt NameLoad NameLoad Assert BoolOpAnd CompareGtE NameLoad NameLoad CompareLt NameLoad NameLoad Assign NameStore BinOpSub NameLoad NameLoad Assign NameStore Num Assign NameStore Num If Call NameLoad NameLoad SubscriptLoad NameLoad Index NameLoad body Assign NameStore BinOpAdd BinOpSub NameLoad NameLoad Num While CompareLt NameLoad NameLoad body If Call NameLoad NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore BinOpAdd BinOpLShift NameLoad Num Num If CompareLtE NameLoad Num body Assign NameStore NameLoad orelse Break If CompareGt NameLoad NameLoad body Assign NameStore NameLoad Assign TupleStore NameStore NameStore TupleLoad BinOpSub NameLoad NameLoad BinOpSub NameLoad NameLoad orelse Assign NameStore BinOpSub NameLoad NameLoad While CompareLt NameLoad NameLoad body If Call NameLoad NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad NameLoad body Break orelse Assign NameStore NameLoad Assign NameStore BinOpAdd BinOpLShift NameLoad Num Num If CompareLtE NameLoad Num body Assign NameStore NameLoad If CompareGt NameLoad NameLoad body Assign NameStore NameLoad AugAssignAdd NameStore NameLoad AugAssignAdd NameStore NameLoad Assert BoolOpAnd CompareLtE BinOpSub NameLoad Num NameLoad CompareLt NameLoad NameLoad CompareLtE NameLoad NameLoad AugAssignAdd NameStore Num While CompareLt NameLoad NameLoad body Assign NameStore BinOpAdd NameLoad BinOpRShift BinOpSub NameLoad NameLoad Num If Call NameLoad NameLoad SubscriptLoad NameLoad Index NameLoad body Assign NameStore NameLoad orelse Assign NameStore BinOpAdd NameLoad Num Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Num Assert CompareGtE NameLoad Num While CompareGtE NameLoad Num body AugAssignBitOr NameStore BinOpBitAnd NameLoad Num AugAssignRShift NameStore Num Return BinOpAdd NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert CompareGtE NameLoad Num Assert CompareGtE NameLoad Num For NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index BinOpAdd NameLoad NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad NameLoad If Call NameLoad NameLoad NameLoad body For NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index BinOpAdd NameLoad NameLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert CompareGtE NameLoad Num Assert CompareGtE NameLoad Num For NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index BinOpSub NameLoad NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad NameLoad If Call NameLoad NameLoad NameLoad body For NameStore Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index BinOpSub NameLoad NameLoad SubscriptLoad NameLoad Index BinOpSub NameLoad NameLoad decorator_list NameLoad Assign NameStore Num FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num CompareLtE NameLoad NameLoad Assert CompareEq NameLoad BinOpAdd NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Expr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num NameLoad NameLoad NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore Num Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr While BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num body Assign NameStore Num Assign NameStore Num While NameLoad body If Call NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignAdd NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num Assign NameStore Num If CompareGtE NameLoad NameLoad body Break orelse Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignAdd NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num Assign NameStore Num If CompareGtE NameLoad NameLoad body Break If BoolOpAnd NameLoad CompareGt NameLoad Num CompareGt NameLoad Num body AugAssignAdd NameStore Num While BoolOpOr CompareGtE NameLoad NameLoad CompareGtE NameLoad NameLoad body AugAssignSub NameStore CompareGt NameLoad Num Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad AugAssignSub NameStore NameLoad Assign NameStore NameLoad If CompareGt NameLoad Num body Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignAdd NameStore NameLoad AugAssignAdd NameStore NameLoad AugAssignSub NameStore NameLoad If CompareEq NameLoad Num body Break Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignAdd NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad AugAssignSub NameStore NameLoad Assign NameStore NameLoad If CompareGt NameLoad Num body Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignAdd NameStore NameLoad AugAssignAdd NameStore NameLoad AugAssignSub NameStore NameLoad If CompareEq NameLoad Num body Break Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignAdd NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num If CompareEq NameLoad Num body Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad orelse Assert CompareEq NameLoad Num Assert CompareEq NameLoad NameLoad Return Call NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body Expr Str Assert BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num CompareGtE NameLoad NameLoad Assert CompareEq NameLoad BinOpAdd NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Expr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num NameLoad NameLoad NameLoad NameLoad Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub BinOpAdd NameLoad NameLoad Num Assign NameStore BinOpSub NameLoad Num Assign NameStore BinOpSub BinOpAdd NameLoad NameLoad Num Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore AttributeLoad NameLoad attr While BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num body Assign NameStore Num Assign NameStore Num While NameLoad body If Call NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignSub NameStore Num AugAssignSub NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num Assign NameStore Num If CompareGtE NameLoad NameLoad body Break orelse Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignSub NameStore Num AugAssignSub NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num Assign NameStore Num If CompareGtE NameLoad NameLoad body Break If BoolOpAnd NameLoad CompareGt NameLoad Num CompareGt NameLoad Num body AugAssignAdd NameStore Num While BoolOpOr CompareGtE NameLoad NameLoad CompareGtE NameLoad NameLoad body AugAssignSub NameStore CompareGt NameLoad Num Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad BinOpAdd BinOpSub NameLoad NameLoad Num BinOpAdd NameLoad Num NameLoad Assign NameStore BinOpSub BinOpAdd NameLoad Num NameLoad Assign NameStore NameLoad If CompareGt NameLoad Num body Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad If CompareEq NameLoad Num body Break Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignSub NameStore Num AugAssignSub NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad BinOpAdd BinOpSub NameLoad NameLoad Num BinOpAdd NameLoad Num NameLoad Assign NameStore BinOpSub BinOpAdd NameLoad Num NameLoad Assign NameStore NameLoad If CompareGt NameLoad Num body Expr Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad AugAssignSub NameStore NameLoad If CompareEq NameLoad Num body Break Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignSub NameStore Num AugAssignSub NameStore Num AugAssignSub NameStore Num If CompareEq NameLoad Num body Break AugAssignAdd NameStore Num If CompareEq NameLoad Num body Expr Call NameLoad NameLoad NameLoad BinOpAdd BinOpSub NameLoad NameLoad Num NameLoad NameLoad BinOpAdd BinOpSub NameLoad NameLoad Num NameLoad orelse Assert CompareEq NameLoad Num Assert CompareEq NameLoad NameLoad Return Call NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assert CompareGtE NameLoad Num Assert CompareGtE NameLoad Num Assert BoolOpOr CompareEq NameLoad BinOpSub NameLoad Num CompareEq NameLoad BinOpSub NameLoad Num Assign TupleStore NameStore NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign TupleStore NameStore NameStore SubscriptLoad AttributeLoad NameLoad attr Index BinOpAdd NameLoad Num Assert BoolOpAnd CompareGt NameLoad Num CompareGt NameLoad Num Assert CompareEq BinOpAdd NameLoad NameLoad NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad NameLoad BinOpAdd NameLoad NameLoad If CompareEq NameLoad BinOpSub NameLoad Num body Assign SubscriptStore AttributeLoad NameLoad attr Index BinOpAdd NameLoad Num SubscriptLoad AttributeLoad NameLoad attr Index BinOpAdd NameLoad Num Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad AugAssignSub NameStore BinOpSub NameLoad NameLoad Assign NameStore NameLoad If CompareEq NameLoad Num body Return NameLoad Assign NameStore Call NameLoad SubscriptLoad NameLoad Index BinOpSub BinOpAdd NameLoad NameLoad Num NameLoad NameLoad BinOpAdd NameLoad NameLoad BinOpSub BinOpAdd NameLoad NameLoad Num Assign NameStore BinOpSub NameLoad NameLoad If CompareLtE NameLoad NameLoad body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad orelse Return Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str While CompareGt AttributeLoad NameLoad attr Num body Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub AttributeLoad NameLoad attr Num If BoolOpOr BoolOpAnd CompareGt NameLoad Num CompareLtE AttributeLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num attr BinOpAdd AttributeLoad SubscriptLoad NameLoad Index NameLoad attr AttributeLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num attr BoolOpAnd CompareGt NameLoad Num CompareLtE AttributeLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num attr BinOpAdd AttributeLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num attr AttributeLoad SubscriptLoad NameLoad Index NameLoad attr body If CompareLt AttributeLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num attr AttributeLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num attr body AugAssignSub NameStore Num Assign NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad orelse If CompareLt AttributeLoad SubscriptLoad NameLoad Index NameLoad attr AttributeLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num attr body Assign NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad orelse Break Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str While CompareGt AttributeLoad NameLoad attr Num body Assign NameStore AttributeLoad NameLoad attr Assign NameStore BinOpSub AttributeLoad NameLoad attr Num If CompareGt NameLoad Num body If CompareLt AttributeLoad SubscriptLoad NameLoad Index BinOpSub NameLoad Num attr AttributeLoad SubscriptLoad NameLoad Index BinOpAdd NameLoad Num attr body AugAssignSub NameStore Num Assign NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore NameLoad Assign NameStore BinOpSub NameLoad Num While CompareLt NameLoad NameLoad body Assign TupleStore SubscriptStore NameLoad Index NameLoad SubscriptStore NameLoad Index NameLoad TupleLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignSub NameStore Num If Call NameLoad NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore BinOpSub NameLoad Num While CompareLt NameLoad NameLoad body Assign TupleStore SubscriptStore NameLoad Index NameLoad SubscriptStore NameLoad Index NameLoad TupleLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num AugAssignSub NameStore Num decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad If CompareLt NameLoad Num body Return Assign NameStore Call NameLoad NameLoad Assign NameStore NameLoad While CompareGt NameLoad Num body Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad If NameLoad body Expr Call NameLoad NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad If CompareLt NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad Expr Call NameLoad NameLoad NameLoad NameLoad BinOpAdd NameLoad NameLoad BinOpAdd NameLoad NameLoad Assign NameStore NameLoad Assign NameStore Call NameLoad NameLoad Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad AugAssignAdd NameStore NameLoad AugAssignSub NameStore NameLoad Assign NameStore Call NameLoad NameLoad NameLoad NameLoad Assert CompareEq AttributeLoad NameLoad attr Num Assert CompareEq SubscriptLoad AttributeLoad NameLoad attr Index Num TupleLoad Num Call NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore NameLoad Expr Call NameLoad Call NameLoad NameLoad NameLoad NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call NameLoad Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list NameLoad Return Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args defaults vararg body Return Call NameLoad Lambda arguments args NameParam defaults NameLoad NameLoad decorator_list FunctionDef arguments args defaults vararg body ImportFrom alias Return Call NameLoad Lambda arguments args NameParam defaults Call Call NameLoad keyword NameLoad NameLoad NameLoad decorator_list
N/A N/A 
Timsort implementation.  Mostly adapted from CPython's listobject.c.

For more information, see listsort.txt in CPython's source tree.
 __future__ print_function absolute_import division N/A collections numba types N/A TimsortImplementation N/A N/A collections namedtuple TimsortImplementation N/A compile count_run binarysort gallop_left gallop_right merge_init merge_append merge_pop merge_compute_minrun merge_lo merge_hi merge_at merge_force_collapse merge_collapse run_timsort run_timsort_with_values N/A MAX_MERGE_PENDING 85 N/A MIN_GALLOP 7 N/A MERGESTATE_TEMP_SIZE 256 N/A MergeState N/A N/A collections namedtuple MergeState N/A min_gallop keys values pending n N/A MergeRun N/A N/A collections namedtuple MergeRun N/A start size make_timsort_impl N/A N/A wrap make_temp_area N/A N/A N/A make_temp_area N/A wrap make_temp_area N/A intp N/A types intp N/A zero N/A intp 0 has_values N/A N/A keys values N/A N/A N/A N/A values keys N/A wrap merge_init N/A N/A keys N/A N/A N/A 
        Initialize a MergeState for a non-keyed sort.
         N/A temp_size N/A min N/A N/A N/A len keys 2 1 MERGESTATE_TEMP_SIZE N/A temp_keys N/A make_temp_area keys temp_size N/A temp_values temp_keys N/A pending N/A N/A N/A MergeRun zero zero MAX_MERGE_PENDING N/A N/A MergeState N/A intp MIN_GALLOP temp_keys temp_values pending zero N/A wrap merge_init_with_values N/A N/A keys values N/A N/A N/A 
        Initialize a MergeState for a keyed sort.
         N/A temp_size N/A min N/A N/A N/A len keys 2 1 MERGESTATE_TEMP_SIZE N/A temp_keys N/A make_temp_area keys temp_size N/A temp_values N/A make_temp_area values temp_size N/A pending N/A N/A N/A MergeRun zero zero MAX_MERGE_PENDING N/A N/A MergeState N/A intp MIN_GALLOP temp_keys temp_values pending zero N/A wrap merge_append N/A N/A ms run N/A N/A N/A 
        Append a run on the merge stack.
         N/A n N/A ms n N/A N/A n MAX_MERGE_PENDING N/A N/A N/A ms pending N/A n run N/A N/A MergeState N/A ms min_gallop N/A ms keys N/A ms values N/A ms pending N/A n 1 N/A wrap merge_pop N/A N/A ms N/A N/A N/A 
        Pop the top run from the merge stack.
         N/A N/A MergeState N/A ms min_gallop N/A ms keys N/A ms values N/A ms pending N/A N/A ms n 1 N/A wrap merge_getmem N/A N/A ms need N/A N/A N/A 
        Ensure enough temp memory for 'need' items is available.
         N/A alloced N/A len N/A ms keys N/A N/A need alloced N/A N/A ms N/A N/A alloced need N/A N/A alloced N/A alloced 1 N/A temp_keys N/A make_temp_area N/A ms keys alloced N/A N/A has_values N/A ms keys N/A ms values N/A N/A temp_values N/A make_temp_area N/A ms values alloced N/A N/A temp_values temp_keys N/A N/A MergeState N/A ms min_gallop temp_keys temp_values N/A ms pending N/A ms n N/A wrap merge_adjust_gallop N/A N/A ms new_gallop N/A N/A N/A 
        Modify the MergeState's min_gallop.
         N/A N/A MergeState N/A intp new_gallop N/A ms keys N/A ms values N/A ms pending N/A ms n N/A wrap LT N/A N/A a b N/A N/A N/A 
        Trivial comparison function between two keys.  This is factored out to
        make it clear where comparisons occur.
         N/A N/A a b N/A wrap binarysort N/A N/A keys values lo hi start N/A N/A N/A 
        binarysort is the best method for sorting small arrays: it does
        few compares, but can do data movement quadratic in the number of
        elements.
        [lo, hi) is a contiguous slice of a list, and is sorted via
        binary insertion.  This sort is stable.
        On entry, must have lo <= start <= hi, and that [lo, start) is already
        sorted (pass start == lo if you don't know!).
         N/A N/A N/A lo start N/A start hi N/A _has_values N/A has_values keys values N/A N/A lo start N/A N/A start 1 N/A N/A start hi N/A N/A pivot N/A keys N/A start N/A l lo N/A r start N/A N/A l r N/A N/A p N/A l N/A N/A r l 1 N/A N/A LT pivot N/A keys N/A p N/A N/A r p N/A N/A l N/A p 1 N/A p N/A range start l -1 N/A N/A N/A keys N/A p N/A keys N/A N/A p 1 N/A N/A keys N/A l pivot N/A _has_values N/A N/A pivot_val N/A values N/A start N/A p N/A range start l -1 N/A N/A N/A values N/A p N/A values N/A N/A p 1 N/A N/A values N/A l pivot_val N/A start 1 N/A wrap count_run N/A N/A keys lo hi N/A N/A N/A 
        Return the length of the run beginning at lo, in the slice [lo, hi).
        lo < hi is required on entry.  "A run" is the longest ascending sequence, with

            lo[0] <= lo[1] <= lo[2] <= ...

        or the longest descending sequence, with

            lo[0] > lo[1] > lo[2] > ...

        A tuple (length, descending) is returned, where boolean *descending*
        is set to 0 in the former case, or to 1 in the latter.
        For its intended use in a stable mergesort, the strictness of the defn of
        "descending" is needed so that the caller can safely reverse a descending
        sequence without violating stability (strict > ensures there are no equal
        elements to get out of order).
         N/A N/A lo hi N/A N/A N/A lo 1 hi N/A N/A N/A 1 False N/A N/A LT N/A keys N/A N/A lo 1 N/A keys N/A lo N/A N/A k N/A range N/A lo 2 hi N/A N/A N/A N/A LT N/A keys N/A k N/A keys N/A N/A k 1 N/A N/A N/A N/A k lo True N/A N/A N/A hi lo True N/A N/A k N/A range N/A lo 2 hi N/A N/A N/A LT N/A keys N/A k N/A keys N/A N/A k 1 N/A N/A N/A N/A k lo False N/A N/A N/A hi lo False N/A wrap gallop_left N/A N/A key a start stop hint N/A N/A N/A 
        Locate the proper position of key in a sorted vector; if the vector contains
        an element equal to key, return the position immediately to the left of
        the leftmost equal element.  [gallop_right() does the same except returns
        the position to the right of the rightmost equal element (if any).]

        "a" is a sorted vector with stop elements, starting at a[start].
        stop must be > start.

        "hint" is an index at which to begin the search, start <= hint < stop.
        The closer hint is to the final result, the faster this runs.

        The return value is the int k in start..stop such that

            a[k-1] < key <= a[k]

        pretending that a[start-1] is minus infinity and a[stop] is plus infinity.
        IOW, key belongs at index k; or, IOW, the first k elements of a should
        precede key, and the last stop-start-k should follow key.

        See listsort.txt for info on the method.
         N/A N/A stop start N/A N/A N/A hint start N/A hint stop N/A n N/A stop start N/A lastofs 0 N/A ofs 1 N/A N/A LT N/A a N/A hint key N/A N/A maxofs N/A stop hint N/A N/A ofs maxofs N/A N/A N/A LT N/A a N/A N/A hint ofs key N/A N/A lastofs ofs N/A ofs N/A N/A ofs 1 1 N/A N/A ofs 0 N/A N/A ofs maxofs N/A N/A N/A N/A ofs maxofs N/A N/A ofs maxofs N/A lastofs hint N/A ofs hint N/A N/A maxofs N/A N/A hint start 1 N/A N/A ofs maxofs N/A N/A N/A LT N/A a N/A N/A hint ofs key N/A N/A N/A N/A lastofs ofs N/A ofs N/A N/A ofs 1 1 N/A N/A ofs 0 N/A N/A ofs maxofs N/A N/A ofs maxofs N/A N/A ofs maxofs N/A N/A lastofs ofs N/A N/A hint ofs N/A hint lastofs N/A N/A N/A N/A start 1 lastofs N/A lastofs ofs N/A ofs stop N/A lastofs 1 N/A N/A lastofs ofs N/A N/A m N/A lastofs N/A N/A ofs lastofs 1 N/A N/A LT N/A a N/A m key N/A N/A lastofs N/A m 1 N/A N/A ofs m N/A ofs N/A wrap gallop_right N/A N/A key a start stop hint N/A N/A N/A 
        Exactly like gallop_left(), except that if key already exists in a[start:stop],
        finds the position immediately to the right of the rightmost equal value.

        The return value is the int k in start..stop such that

            a[k-1] <= key < a[k]

        The code duplication is massive, but this is enough different given that
        we're sticking to "<" comparisons that it's much harder to follow if
        written as one routine with yet another "left or right?" flag.
         N/A N/A stop start N/A N/A N/A hint start N/A hint stop N/A n N/A stop start N/A lastofs 0 N/A ofs 1 N/A N/A LT key N/A a N/A hint N/A N/A maxofs N/A N/A hint start 1 N/A N/A ofs maxofs N/A N/A N/A LT key N/A a N/A N/A hint ofs N/A N/A lastofs ofs N/A ofs N/A N/A ofs 1 1 N/A N/A ofs 0 N/A N/A ofs maxofs N/A N/A N/A N/A ofs maxofs N/A N/A ofs maxofs N/A N/A lastofs ofs N/A N/A hint ofs N/A hint lastofs N/A N/A maxofs N/A stop hint N/A N/A ofs maxofs N/A N/A N/A LT key N/A a N/A N/A hint ofs N/A N/A N/A N/A lastofs ofs N/A ofs N/A N/A ofs 1 1 N/A N/A ofs 0 N/A N/A ofs maxofs N/A N/A ofs maxofs N/A N/A ofs maxofs N/A lastofs hint N/A ofs hint N/A N/A N/A N/A start 1 lastofs N/A lastofs ofs N/A ofs stop N/A lastofs 1 N/A N/A lastofs ofs N/A N/A m N/A lastofs N/A N/A ofs lastofs 1 N/A N/A LT key N/A a N/A m N/A N/A ofs m N/A N/A lastofs N/A m 1 N/A ofs N/A wrap merge_compute_minrun N/A N/A n N/A N/A N/A 
        Compute a good value for the minimum run length; natural runs shorter
        than this are boosted artificially via binary insertion.

        If n < 64, return n (it's too small to bother with fancy stuff).
        Else if n is an exact power of 2, return 32.
        Else return an int k, 32 <= k <= 64, such that n/k is close to, but
        strictly less than, an exact power of 2.

        See listsort.txt for more info.
         N/A r 0 N/A N/A n 0 N/A N/A n 64 N/A N/A r N/A n 1 N/A n 1 N/A N/A n r N/A wrap sortslice_copy N/A N/A dest_keys dest_values dest_start src_keys src_values src_start nitems N/A N/A N/A 
        Upwards memcpy().
         N/A N/A src_start 0 N/A N/A dest_start 0 N/A i N/A range nitems N/A N/A N/A dest_keys N/A N/A dest_start i N/A src_keys N/A N/A src_start i N/A N/A has_values src_keys src_values N/A N/A i N/A range nitems N/A N/A N/A dest_values N/A N/A dest_start i N/A src_values N/A N/A src_start i N/A wrap sortslice_copy_down N/A N/A dest_keys dest_values dest_start src_keys src_values src_start nitems N/A N/A N/A 
        Downwards memcpy().
         N/A N/A src_start 0 N/A N/A dest_start 0 N/A i N/A range nitems N/A N/A N/A dest_keys N/A N/A dest_start i N/A src_keys N/A N/A src_start i N/A N/A has_values src_keys src_values N/A N/A i N/A range nitems N/A N/A N/A dest_values N/A N/A dest_start i N/A src_values N/A N/A src_start i N/A wrap N/A DO_GALLOP 1 merge_lo N/A N/A ms keys values ssa na ssb nb N/A N/A N/A 
        Merge the na elements starting at ssa with the nb elements starting at
        ssb = ssa + na in a stable way, in-place.  na and nb must be > 0,
        and should have na <= nb. See listsort.txt for more info.

        An updated MergeState is returned (with possibly a different min_gallop
        or larger temp arrays).

        NOTE: compared to CPython's timsort, the requirement that
            "Must also have that keys[ssa + na - 1] belongs at the end of the merge"

        is removed. This makes the code a bit simpler and easier to reason about.
         N/A N/A N/A na 0 N/A nb 0 N/A na nb N/A N/A ssb N/A ssa na N/A ms N/A merge_getmem ms na N/A N/A sortslice_copy N/A ms keys N/A ms values 0 keys values ssa na N/A a_keys N/A ms keys N/A a_values N/A ms values N/A b_keys keys N/A b_values values N/A dest ssa N/A ssa 0 N/A _has_values N/A has_values a_keys a_values N/A min_gallop N/A ms min_gallop N/A N/A N/A nb 0 N/A na 0 N/A N/A acount 0 N/A bcount 0 N/A True N/A N/A N/A LT N/A b_keys N/A ssb N/A a_keys N/A ssa N/A N/A N/A keys N/A dest N/A b_keys N/A ssb N/A _has_values N/A N/A N/A values N/A dest N/A b_values N/A ssb N/A dest 1 N/A ssb 1 N/A nb 1 N/A N/A nb 0 N/A N/A N/A bcount 1 N/A acount 0 N/A N/A bcount min_gallop N/A N/A N/A N/A N/A keys N/A dest N/A a_keys N/A ssa N/A _has_values N/A N/A N/A values N/A dest N/A a_values N/A ssa N/A dest 1 N/A ssa 1 N/A na 1 N/A N/A na 0 N/A N/A N/A acount 1 N/A bcount 0 N/A N/A acount min_gallop N/A N/A N/A N/A DO_GALLOP N/A na 0 N/A nb 0 N/A N/A min_gallop 1 N/A N/A N/A acount MIN_GALLOP N/A bcount MIN_GALLOP N/A N/A min_gallop N/A min_gallop 1 N/A k N/A gallop_right N/A b_keys N/A ssb a_keys ssa N/A ssa na ssa N/A k ssa N/A acount k N/A N/A k 0 N/A N/A N/A sortslice_copy keys values dest a_keys a_values ssa k N/A dest k N/A ssa k N/A na k N/A N/A na 0 N/A N/A N/A N/A keys N/A dest N/A b_keys N/A ssb N/A _has_values N/A N/A N/A values N/A dest N/A b_values N/A ssb N/A dest 1 N/A ssb 1 N/A nb 1 N/A N/A nb 0 N/A N/A N/A k N/A gallop_left N/A a_keys N/A ssa b_keys ssb N/A ssb nb ssb N/A k ssb N/A bcount k N/A N/A k 0 N/A N/A N/A sortslice_copy keys values dest b_keys b_values ssb k N/A dest k N/A ssb k N/A nb k N/A N/A nb 0 N/A N/A N/A N/A keys N/A dest N/A a_keys N/A ssa N/A _has_values N/A N/A N/A values N/A dest N/A a_values N/A ssa N/A dest 1 N/A ssa 1 N/A na 1 N/A N/A na 0 N/A N/A N/A min_gallop 1 N/A N/A nb 0 N/A N/A N/A sortslice_copy keys values dest a_keys a_values ssa na N/A N/A N/A na 0 N/A N/A dest ssb N/A N/A merge_adjust_gallop ms min_gallop N/A wrap merge_hi N/A N/A ms keys values ssa na ssb nb N/A N/A N/A 
        Merge the na elements starting at ssa with the nb elements starting at
        ssb = ssa + na in a stable way, in-place.  na and nb must be > 0,
        and should have na >= nb.  See listsort.txt for more info.

        An updated MergeState is returned (with possibly a different min_gallop
        or larger temp arrays).

        NOTE: compared to CPython's timsort, the requirement that
            "Must also have that keys[ssa + na - 1] belongs at the end of the merge"

        is removed. This makes the code a bit simpler and easier to reason about.
         N/A N/A N/A na 0 N/A nb 0 N/A na nb N/A N/A ssb N/A ssa na N/A ms N/A merge_getmem ms nb N/A N/A sortslice_copy N/A ms keys N/A ms values 0 keys values ssb nb N/A a_keys keys N/A a_values values N/A b_keys N/A ms keys N/A b_values N/A ms values N/A dest N/A N/A ssb nb 1 N/A ssb N/A nb 1 N/A ssa N/A N/A ssa na 1 N/A _has_values N/A has_values b_keys b_values N/A min_gallop N/A ms min_gallop N/A N/A N/A nb 0 N/A na 0 N/A N/A acount 0 N/A bcount 0 N/A True N/A N/A N/A LT N/A b_keys N/A ssb N/A a_keys N/A ssa N/A N/A N/A keys N/A dest N/A a_keys N/A ssa N/A _has_values N/A N/A N/A values N/A dest N/A a_values N/A ssa N/A dest 1 N/A ssa 1 N/A na 1 N/A N/A na 0 N/A N/A N/A acount 1 N/A bcount 0 N/A N/A acount min_gallop N/A N/A N/A N/A N/A keys N/A dest N/A b_keys N/A ssb N/A _has_values N/A N/A N/A values N/A dest N/A b_values N/A ssb N/A dest 1 N/A ssb 1 N/A nb 1 N/A N/A nb 0 N/A N/A N/A bcount 1 N/A acount 0 N/A N/A bcount min_gallop N/A N/A N/A N/A DO_GALLOP N/A na 0 N/A nb 0 N/A N/A min_gallop 1 N/A N/A N/A acount MIN_GALLOP N/A bcount MIN_GALLOP N/A N/A min_gallop N/A min_gallop 1 N/A k N/A gallop_right N/A b_keys N/A ssb a_keys N/A N/A ssa na 1 N/A ssa 1 ssa N/A k N/A N/A ssa 1 k N/A acount k N/A N/A k 0 N/A N/A N/A sortslice_copy_down keys values dest a_keys a_values ssa k N/A dest k N/A ssa k N/A na k N/A N/A na 0 N/A N/A N/A N/A keys N/A dest N/A b_keys N/A ssb N/A _has_values N/A N/A N/A values N/A dest N/A b_values N/A ssb N/A dest 1 N/A ssb 1 N/A nb 1 N/A N/A nb 0 N/A N/A N/A k N/A gallop_left N/A a_keys N/A ssa b_keys N/A N/A ssb nb 1 N/A ssb 1 ssb N/A k N/A N/A ssb 1 k N/A bcount k N/A N/A k 0 N/A N/A N/A sortslice_copy_down keys values dest b_keys b_values ssb k N/A dest k N/A ssb k N/A nb k N/A N/A nb 0 N/A N/A N/A N/A keys N/A dest N/A a_keys N/A ssa N/A _has_values N/A N/A N/A values N/A dest N/A a_values N/A ssa N/A dest 1 N/A ssa 1 N/A na 1 N/A N/A na 0 N/A N/A N/A min_gallop 1 N/A N/A na 0 N/A N/A N/A sortslice_copy keys values N/A N/A dest nb 1 b_keys b_values N/A N/A ssb nb 1 nb N/A N/A N/A nb 0 N/A N/A dest ssa N/A N/A merge_adjust_gallop ms min_gallop N/A wrap merge_at N/A N/A ms keys values i N/A N/A N/A 
        Merge the two runs at stack indices i and i+1.

        An updated MergeState is returned.
         N/A n N/A ms n N/A N/A n 2 N/A N/A i 0 N/A N/A N/A i N/A n 2 N/A i N/A n 3 N/A N/A ssa na N/A N/A ms pending N/A i N/A N/A ssb nb N/A N/A ms pending N/A N/A i 1 N/A N/A N/A na 0 N/A nb 0 N/A N/A N/A ssa na ssb N/A N/A N/A ms pending N/A i N/A MergeRun ssa N/A na nb N/A N/A i N/A n 3 N/A N/A N/A N/A ms pending N/A N/A i 1 N/A N/A ms pending N/A N/A i 2 N/A ms N/A merge_pop ms N/A k N/A gallop_right N/A keys N/A ssb keys ssa N/A ssa na ssa N/A na N/A k ssa N/A ssa k N/A N/A na 0 N/A N/A ms N/A k N/A gallop_left N/A keys N/A N/A N/A ssa na 1 keys ssb N/A ssb nb N/A N/A ssb nb 1 N/A nb N/A k ssb N/A N/A na nb N/A N/A N/A merge_lo ms keys values ssa na ssb nb N/A N/A N/A merge_hi ms keys values ssa na ssb nb N/A wrap merge_collapse N/A N/A ms keys values N/A N/A N/A 
        Examine the stack of runs waiting to be merged, merging adjacent runs
        until the stack invariants are re-established:

        1. len[-3] > len[-2] + len[-1]
        2. len[-2] > len[-1]

        An updated MergeState is returned.

        See listsort.txt for more info.
         N/A N/A N/A ms n 1 N/A N/A pending N/A ms pending N/A n N/A N/A ms n 2 N/A N/A N/A N/A n 0 N/A N/A N/A pending N/A N/A n 1 size N/A N/A N/A pending N/A n size N/A N/A pending N/A N/A n 1 size N/A N/A n 1 N/A N/A N/A pending N/A N/A n 2 size N/A N/A N/A pending N/A N/A n 1 size N/A N/A pending N/A n size N/A N/A N/A N/A N/A pending N/A N/A n 1 size N/A N/A pending N/A N/A n 1 size N/A N/A n 1 N/A ms N/A merge_at ms keys values n N/A N/A N/A N/A N/A pending N/A n size N/A N/A pending N/A N/A n 1 size N/A N/A ms N/A merge_at ms keys values n N/A N/A N/A ms N/A wrap merge_force_collapse N/A N/A ms keys values N/A N/A N/A 
        Regardless of invariants, merge all runs on the stack until only one
        remains.  This is used at the end of the mergesort.

        An updated MergeState is returned.
         N/A N/A N/A ms n 1 N/A N/A pending N/A ms pending N/A n N/A N/A ms n 2 N/A N/A n 0 N/A N/A N/A N/A N/A pending N/A N/A n 1 size N/A N/A pending N/A N/A n 1 size N/A N/A n 1 N/A ms N/A merge_at ms keys values n N/A ms N/A wrap reverse_slice N/A N/A keys values start stop N/A N/A N/A 
        Reverse a slice, in-place.
         N/A i start N/A j N/A stop 1 N/A N/A i j N/A N/A N/A N/A keys N/A i N/A keys N/A j N/A N/A keys N/A j N/A keys N/A i N/A i 1 N/A j 1 N/A N/A has_values keys values N/A N/A i start N/A j N/A stop 1 N/A N/A i j N/A N/A N/A N/A values N/A i N/A values N/A j N/A N/A values N/A j N/A values N/A i N/A i 1 N/A j 1 N/A wrap run_timsort_with_mergestate N/A N/A ms keys values N/A N/A N/A 
        Run timsort with the mergestate.
         N/A nremaining N/A len keys N/A N/A nremaining 2 N/A N/A N/A minrun N/A merge_compute_minrun nremaining N/A lo zero N/A N/A nremaining 0 N/A N/A N/A n desc N/A count_run keys lo N/A lo nremaining N/A desc N/A N/A N/A reverse_slice keys values lo N/A lo n N/A N/A n minrun N/A N/A force N/A min minrun nremaining N/A N/A binarysort keys values lo N/A lo force N/A lo n N/A n force N/A ms N/A merge_append ms N/A MergeRun lo n N/A ms N/A merge_collapse ms keys values N/A lo n N/A nremaining n N/A ms N/A merge_force_collapse ms keys values N/A N/A N/A ms n 1 N/A N/A N/A N/A ms pending N/A 0 N/A 0 N/A len keys N/A wrap run_timsort N/A N/A keys N/A N/A N/A 
        Run timsort over the given keys.
         N/A values keys N/A N/A run_timsort_with_mergestate N/A merge_init keys keys values N/A wrap run_timsort_with_values N/A N/A keys values N/A N/A N/A 
        Run timsort over the given keys and values.
         N/A N/A run_timsort_with_mergestate N/A merge_init_with_values keys values keys values N/A wrap N/A N/A TimsortImplementation wrap count_run binarysort gallop_left gallop_right merge_init merge_append merge_pop merge_compute_minrun merge_lo merge_hi merge_at merge_force_collapse merge_collapse run_timsort run_timsort_with_values N/A make_py_timsort N/A N/A N/A args N/A N/A N/A make_timsort_impl N/A N/A N/A f N/A f args N/A make_jit_timsort N/A N/A N/A args N/A numba jit N/A N/A make_timsort_impl N/A N/A N/A f N/A N/A N/A jit nopython True f args N/A