cobol-parser 3.3.0__tar.gz → 3.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. {cobol_parser-3.3.0/cobol_parser.egg-info → cobol_parser-3.3.1}/PKG-INFO +1 -1
  2. {cobol_parser-3.3.0 → cobol_parser-3.3.1/cobol_parser.egg-info}/PKG-INFO +1 -1
  3. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/__init__.py +1 -1
  4. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_lexer_fast.c +78 -78
  5. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_lexer_fast.pyx +3 -1
  6. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/codebase.py +10 -6
  7. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/constraints.py +188 -20
  8. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/scenarios.py +56 -6
  9. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/lexer.py +206 -32
  10. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/pyproject.toml +1 -1
  11. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/LICENSE +0 -0
  12. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/MANIFEST.in +0 -0
  13. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/README.md +0 -0
  14. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobol_parser.egg-info/SOURCES.txt +0 -0
  15. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobol_parser.egg-info/dependency_links.txt +0 -0
  16. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobol_parser.egg-info/entry_points.txt +0 -0
  17. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobol_parser.egg-info/requires.txt +0 -0
  18. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobol_parser.egg-info/top_level.txt +0 -0
  19. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/__main__.py +0 -0
  20. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_accel.py +0 -0
  21. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_data_fast.c +0 -0
  22. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_data_fast.pyx +0 -0
  23. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_errors.py +0 -0
  24. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_facts_cache.py +0 -0
  25. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_lines.py +0 -0
  26. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_literals.py +0 -0
  27. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_preprocess_fast.c +0 -0
  28. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_preprocess_fast.pyx +0 -0
  29. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_source_directive.py +0 -0
  30. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/_storage.py +0 -0
  31. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/__init__.py +0 -0
  32. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_cics.py +0 -0
  33. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_files.py +0 -0
  34. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_names.py +0 -0
  35. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_procedures.py +0 -0
  36. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_sql_flow.py +0 -0
  37. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/_sql_whenever.py +0 -0
  38. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/ast_diff.py +0 -0
  39. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/boundary_inventory.py +0 -0
  40. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/business_rules.py +0 -0
  41. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/call_interface.py +0 -0
  42. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/complexity.py +0 -0
  43. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/const_fold.py +0 -0
  44. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/crud_matrix.py +0 -0
  45. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/dclgen_check.py +0 -0
  46. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/dead_code.py +0 -0
  47. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/domains.py +0 -0
  48. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/field_lineage.py +0 -0
  49. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/field_widening.py +0 -0
  50. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/host_var_resolver.py +0 -0
  51. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/ims_segment_analyzer.py +0 -0
  52. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/invocation_counts.py +0 -0
  53. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/io_coverage_reporter.py +0 -0
  54. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/io_diagnostics.py +0 -0
  55. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/io_logger.py +0 -0
  56. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/io_sequence.py +0 -0
  57. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/language_env_analyzer.py +0 -0
  58. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/lineage_graph.py +0 -0
  59. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/lineage_jcl.py +0 -0
  60. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/linkage_checker.py +0 -0
  61. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/lint.py +0 -0
  62. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/move_type_checker.py +0 -0
  63. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/__init__.py +0 -0
  64. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/analyzer.py +0 -0
  65. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/condition_text.py +0 -0
  66. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/cycles.py +0 -0
  67. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/edges.py +0 -0
  68. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/graph.py +0 -0
  69. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/models.py +0 -0
  70. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/scanner.py +0 -0
  71. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_flow/statement_text.py +0 -0
  72. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/program_signature.py +0 -0
  73. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/recursion_risk.py +0 -0
  74. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/redundancy.py +0 -0
  75. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/sarif.py +0 -0
  76. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/sql_cics_lint.py +0 -0
  77. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/technical_debt.py +0 -0
  78. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/unused_variables.py +0 -0
  79. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/value_tracker.py +0 -0
  80. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/analysis/xref.py +0 -0
  81. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/batch.py +0 -0
  82. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/cli/__init__.py +0 -0
  83. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/cli/_project_config.py +0 -0
  84. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/cli/coverage.py +0 -0
  85. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/cli/parse.py +0 -0
  86. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/config/__init__.py +0 -0
  87. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/config/_yaml.py +0 -0
  88. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/config/project.py +0 -0
  89. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/__init__.py +0 -0
  90. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/ast_factory.py +0 -0
  91. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/exceptions.py +0 -0
  92. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/interfaces.py +0 -0
  93. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/registry.py +0 -0
  94. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/core/token_stream.py +0 -0
  95. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/__init__.py +0 -0
  96. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/_asm.py +0 -0
  97. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/bms.py +0 -0
  98. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/csd.py +0 -0
  99. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/ddl.py +0 -0
  100. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/definitions/ims.py +0 -0
  101. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/dialects/__init__.py +0 -0
  102. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/dialects/ibm_enterprise.py +0 -0
  103. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/dialects/le_signatures.py +0 -0
  104. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/__init__.py +0 -0
  105. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/copybook_data.py +0 -0
  106. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/__init__.py +0 -0
  107. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/bundle.py +0 -0
  108. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/compare.py +0 -0
  109. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/copybook.py +0 -0
  110. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/dataset.py +0 -0
  111. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/decoding.py +0 -0
  112. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/editing.py +0 -0
  113. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/encoding.py +0 -0
  114. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/errors.py +0 -0
  115. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/layout.py +0 -0
  116. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/layout_offsets.py +0 -0
  117. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/options.py +0 -0
  118. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/program_layout.py +0 -0
  119. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/storage.py +0 -0
  120. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/values.py +0 -0
  121. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/data/views.py +0 -0
  122. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/flowchart.py +0 -0
  123. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/program_fixtures.py +0 -0
  124. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/generators/verification.py +0 -0
  125. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/jcl/__init__.py +0 -0
  126. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/jcl/bindings.py +0 -0
  127. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/jcl/models.py +0 -0
  128. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/jcl/parser.py +0 -0
  129. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/jcl/programs.py +0 -0
  130. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/__init__.py +0 -0
  131. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/claims.py +0 -0
  132. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/codebase_index.py +0 -0
  133. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/envelope.py +0 -0
  134. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/facts.py +0 -0
  135. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/hints.py +0 -0
  136. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/jcl_tools.py +0 -0
  137. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/languages.py +0 -0
  138. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/link_decks.py +0 -0
  139. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/navigation.py +0 -0
  140. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/prompts.py +0 -0
  141. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/server.py +0 -0
  142. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/slicing.py +0 -0
  143. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/sort_layout.py +0 -0
  144. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/tools.py +0 -0
  145. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/mcp/workspace.py +0 -0
  146. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/__init__.py +0 -0
  147. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/ast_base.py +0 -0
  148. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/data_items.py +0 -0
  149. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/program.py +0 -0
  150. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/sql_statements.py +0 -0
  151. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/__init__.py +0 -0
  152. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/arithmetic.py +0 -0
  153. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/base.py +0 -0
  154. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/call.py +0 -0
  155. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/communication.py +0 -0
  156. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/control.py +0 -0
  157. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/data.py +0 -0
  158. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/io.py +0 -0
  159. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/legacy.py +0 -0
  160. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/misc.py +0 -0
  161. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/models/statements/report_writer.py +0 -0
  162. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parser.py +0 -0
  163. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/__init__.py +0 -0
  164. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/__init__.py +0 -0
  165. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/base.py +0 -0
  166. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/data.py +0 -0
  167. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/data_clauses.py +0 -0
  168. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/data_file_description.py +0 -0
  169. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/data_report_description.py +0 -0
  170. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/data_special_entries.py +0 -0
  171. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/environment.py +0 -0
  172. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/environment_sections.py +0 -0
  173. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/environment_select.py +0 -0
  174. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/factory.py +0 -0
  175. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/identification.py +0 -0
  176. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/procedure.py +0 -0
  177. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/procedure_boundaries.py +0 -0
  178. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/procedure_recovery.py +0 -0
  179. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/divisions/procedure_registry.py +0 -0
  180. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/__init__.py +0 -0
  181. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/_conditions.py +0 -0
  182. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/_utils.py +0 -0
  183. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/accept_parser.py +0 -0
  184. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/allocate_free_parsers.py +0 -0
  185. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/arithmetic_parsers.py +0 -0
  186. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/call_parser.py +0 -0
  187. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/close_parser.py +0 -0
  188. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/communication_parsers.py +0 -0
  189. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/delete_parser.py +0 -0
  190. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/display_parser.py +0 -0
  191. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/entry_parser.py +0 -0
  192. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/evaluate_parser.py +0 -0
  193. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/exception_parsers.py +0 -0
  194. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/go_parser.py +0 -0
  195. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/ibm_exec_statements.py +0 -0
  196. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/if_parser.py +0 -0
  197. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/initialize_inspect_parsers.py +0 -0
  198. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/invoke_parser.py +0 -0
  199. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/legacy_verb_parsers.py +0 -0
  200. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/move_parser.py +0 -0
  201. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/open_parser.py +0 -0
  202. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/perform_parser.py +0 -0
  203. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/read_parser.py +0 -0
  204. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/report_writer_parsers.py +0 -0
  205. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/rewrite_parser.py +0 -0
  206. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/search_parser.py +0 -0
  207. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/set_parser.py +0 -0
  208. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/simple_statement_parsers.py +0 -0
  209. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/sort_merge_parsers.py +0 -0
  210. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/start_parser.py +0 -0
  211. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/stop_parser.py +0 -0
  212. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/string_unstring_parsers.py +0 -0
  213. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/unlock_parser.py +0 -0
  214. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/write_parser.py +0 -0
  215. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/parsers/statements/xml_json_parser.py +0 -0
  216. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/plugins/__init__.py +0 -0
  217. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/plugins/core.py +0 -0
  218. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/__init__.py +0 -0
  219. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/_normalize.py +0 -0
  220. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/copy_statement_parser.py +0 -0
  221. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/copybook_expander.py +0 -0
  222. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/models.py +0 -0
  223. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/path_resolver.py +0 -0
  224. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/replace_statement.py +0 -0
  225. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/preprocess/source_format.py +0 -0
  226. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/profiling.py +0 -0
  227. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/py.typed +0 -0
  228. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/cobolparser/scan.py +0 -0
  229. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/setup.cfg +0 -0
  230. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/setup.py +0 -0
  231. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/tests/test_all_samples.py +0 -0
  232. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/tests/test_okf_claims.py +0 -0
  233. {cobol_parser-3.3.0 → cobol_parser-3.3.1}/tests/test_okf_staleness_map.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cobol-parser
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: A comprehensive COBOL parser for Python with IBM Enterprise COBOL focus
5
5
  Author-email: Samuel Dion <sam94dion@gmail.com>
6
6
  License: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cobol-parser
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: A comprehensive COBOL parser for Python with IBM Enterprise COBOL focus
5
5
  Author-email: Samuel Dion <sam94dion@gmail.com>
6
6
  License: AGPL-3.0-or-later
@@ -231,7 +231,7 @@ from .scan import (
231
231
  CobolParseError = ParseError
232
232
 
233
233
  # Version info
234
- __version__ = "3.3.0" # x-release-please-version
234
+ __version__ = "3.3.1" # x-release-please-version
235
235
  __author__ = "Samuel Dion"
236
236
  __license__ = "AGPL-3.0-or-later"
237
237
 
@@ -2937,43 +2937,43 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati
2937
2937
  #define __pyx_kp_u_ENVIRONMENT_DIVISION __pyx_string_tab[16]
2938
2938
  #define __pyx_kp_u_ID_DIVISION __pyx_string_tab[17]
2939
2939
  #define __pyx_kp_u_IDENTIFICATION_DIVISION __pyx_string_tab[18]
2940
- #define __pyx_kp_u_Invalid_character __pyx_string_tab[19]
2941
- #define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[20]
2942
- #define __pyx_kp_u_PROCEDURE_DIVISION __pyx_string_tab[21]
2943
- #define __pyx_kp_u_Unterminated_string_literal __pyx_string_tab[22]
2944
- #define __pyx_kp_u_Unterminated_string_literal_at_l __pyx_string_tab[23]
2945
- #define __pyx_kp_u_add_note __pyx_string_tab[24]
2946
- #define __pyx_kp_u_cobolparser__lexer_fast_pyx __pyx_string_tab[25]
2947
- #define __pyx_n_u_COMMENT __pyx_string_tab[26]
2948
- #define __pyx_n_u_CURRENCY __pyx_string_tab[27]
2949
- #define __pyx_n_u_CobolLexer __pyx_string_tab[28]
2950
- #define __pyx_n_u_CobolLexer__try_single_line_stri __pyx_string_tab[29]
2951
- #define __pyx_n_u_CobolLexer_check_division_header __pyx_string_tab[30]
2952
- #define __pyx_n_u_CobolLexer_read_number_from_text __pyx_string_tab[31]
2953
- #define __pyx_n_u_CobolLexer_read_word_from_text __pyx_string_tab[32]
2954
- #define __pyx_n_u_CobolLexer_tokenize __pyx_string_tab[33]
2955
- #define __pyx_n_u_CobolLexer_tokenize_program_text __pyx_string_tab[34]
2956
- #define __pyx_n_u_DATA __pyx_string_tab[35]
2957
- #define __pyx_n_u_DATA_DIVISION_2 __pyx_string_tab[36]
2958
- #define __pyx_n_u_E __pyx_string_tab[37]
2959
- #define __pyx_n_u_ENVIRONMENT __pyx_string_tab[38]
2960
- #define __pyx_n_u_ENVIRONMENT_DIVISION_2 __pyx_string_tab[39]
2961
- #define __pyx_n_u_EOF __pyx_string_tab[40]
2962
- #define __pyx_n_u_FIGURATIVE_CONSTANT __pyx_string_tab[41]
2963
- #define __pyx_n_u_FIGURATIVE_CONSTANTS __pyx_string_tab[42]
2964
- #define __pyx_n_u_ID __pyx_string_tab[43]
2965
- #define __pyx_n_u_IDENTIFICATION __pyx_string_tab[44]
2966
- #define __pyx_n_u_IDENTIFICATION_DIVISION_2 __pyx_string_tab[45]
2967
- #define __pyx_n_u_IDENTIFIER __pyx_string_tab[46]
2968
- #define __pyx_n_u_KEYWORDS __pyx_string_tab[47]
2969
- #define __pyx_n_u_LEVEL_NUMBER __pyx_string_tab[48]
2970
- #define __pyx_n_u_LITERAL_PREFIXES __pyx_string_tab[49]
2971
- #define __pyx_n_u_LexerError __pyx_string_tab[50]
2972
- #define __pyx_n_u_NEWLINE __pyx_string_tab[51]
2973
- #define __pyx_n_u_NUMERIC_LITERAL __pyx_string_tab[52]
2974
- #define __pyx_n_u_PROCEDURE __pyx_string_tab[53]
2975
- #define __pyx_n_u_PROCEDURE_DIVISION_2 __pyx_string_tab[54]
2976
- #define __pyx_n_u_SINGLE_CHAR_TOKENS __pyx_string_tab[55]
2940
+ #define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[19]
2941
+ #define __pyx_kp_u_PROCEDURE_DIVISION __pyx_string_tab[20]
2942
+ #define __pyx_kp_u_Unterminated_string_literal __pyx_string_tab[21]
2943
+ #define __pyx_kp_u_Unterminated_string_literal_at_l __pyx_string_tab[22]
2944
+ #define __pyx_kp_u_add_note __pyx_string_tab[23]
2945
+ #define __pyx_kp_u_cobolparser__lexer_fast_pyx __pyx_string_tab[24]
2946
+ #define __pyx_n_u_COMMENT __pyx_string_tab[25]
2947
+ #define __pyx_n_u_CURRENCY __pyx_string_tab[26]
2948
+ #define __pyx_n_u_CobolLexer __pyx_string_tab[27]
2949
+ #define __pyx_n_u_CobolLexer__try_single_line_stri __pyx_string_tab[28]
2950
+ #define __pyx_n_u_CobolLexer_check_division_header __pyx_string_tab[29]
2951
+ #define __pyx_n_u_CobolLexer_read_number_from_text __pyx_string_tab[30]
2952
+ #define __pyx_n_u_CobolLexer_read_word_from_text __pyx_string_tab[31]
2953
+ #define __pyx_n_u_CobolLexer_tokenize __pyx_string_tab[32]
2954
+ #define __pyx_n_u_CobolLexer_tokenize_program_text __pyx_string_tab[33]
2955
+ #define __pyx_n_u_DATA __pyx_string_tab[34]
2956
+ #define __pyx_n_u_DATA_DIVISION_2 __pyx_string_tab[35]
2957
+ #define __pyx_n_u_E __pyx_string_tab[36]
2958
+ #define __pyx_n_u_ENVIRONMENT __pyx_string_tab[37]
2959
+ #define __pyx_n_u_ENVIRONMENT_DIVISION_2 __pyx_string_tab[38]
2960
+ #define __pyx_n_u_EOF __pyx_string_tab[39]
2961
+ #define __pyx_n_u_FIGURATIVE_CONSTANT __pyx_string_tab[40]
2962
+ #define __pyx_n_u_FIGURATIVE_CONSTANTS __pyx_string_tab[41]
2963
+ #define __pyx_n_u_ID __pyx_string_tab[42]
2964
+ #define __pyx_n_u_IDENTIFICATION __pyx_string_tab[43]
2965
+ #define __pyx_n_u_IDENTIFICATION_DIVISION_2 __pyx_string_tab[44]
2966
+ #define __pyx_n_u_IDENTIFIER __pyx_string_tab[45]
2967
+ #define __pyx_n_u_KEYWORDS __pyx_string_tab[46]
2968
+ #define __pyx_n_u_LEVEL_NUMBER __pyx_string_tab[47]
2969
+ #define __pyx_n_u_LITERAL_PREFIXES __pyx_string_tab[48]
2970
+ #define __pyx_n_u_LexerError __pyx_string_tab[49]
2971
+ #define __pyx_n_u_NEWLINE __pyx_string_tab[50]
2972
+ #define __pyx_n_u_NUMERIC_LITERAL __pyx_string_tab[51]
2973
+ #define __pyx_n_u_PROCEDURE __pyx_string_tab[52]
2974
+ #define __pyx_n_u_PROCEDURE_DIVISION_2 __pyx_string_tab[53]
2975
+ #define __pyx_n_u_SINGLE_CHAR_TOKENS __pyx_string_tab[54]
2976
+ #define __pyx_n_u_STRAY_CHAR __pyx_string_tab[55]
2977
2977
  #define __pyx_n_u_STRING_LITERAL __pyx_string_tab[56]
2978
2978
  #define __pyx_n_u_SourceLocation __pyx_string_tab[57]
2979
2979
  #define __pyx_n_u_Token __pyx_string_tab[58]
@@ -10662,49 +10662,49 @@ static PyObject *__pyx_pf_11cobolparser_11_lexer_fast_10CobolLexer_10tokenize_pr
10662
10662
  */
10663
10663
  }
10664
10664
 
10665
- /* "cobolparser/_lexer_fast.pyx":576
10666
- *
10667
- * # ---- unknown character ---------------------------------
10668
- * self.errors.append(LexerError(f"Invalid character: {char}", location, char)) # <<<<<<<<<<<<<<
10665
+ /* "cobolparser/_lexer_fast.pyx":578
10666
+ * # Mirrors lexer.py: an opaque STRAY_CHAR token, dropped with a
10667
+ * # warning outside EXEC by the shared `_drop_stray_chars`.
10668
+ * tokens.append(Token(TokenType.STRAY_CHAR, char, location)) # <<<<<<<<<<<<<<
10669
10669
  * pos += 1
10670
10670
  *
10671
10671
  */
10672
- __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_errors); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error)
10673
- __Pyx_GOTREF(__pyx_t_7);
10674
- __pyx_t_8 = NULL;
10675
- __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_LexerError); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 576, __pyx_L1_error)
10672
+ __pyx_t_9 = NULL;
10673
+ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_Token); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 578, __pyx_L1_error)
10674
+ __Pyx_GOTREF(__pyx_t_8);
10675
+ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_TokenType); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 578, __pyx_L1_error)
10676
10676
  __Pyx_GOTREF(__pyx_t_6);
10677
- __pyx_t_2 = __Pyx_PyUnicode_Concat(__pyx_mstate_global->__pyx_kp_u_Invalid_character, __pyx_v_char); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error)
10677
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STRAY_CHAR); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
10678
10678
  __Pyx_GOTREF(__pyx_t_2);
10679
+ __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
10679
10680
  __pyx_t_10 = 1;
10680
10681
  #if CYTHON_UNPACK_METHODS
10681
- if (unlikely(PyMethod_Check(__pyx_t_6))) {
10682
- __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
10683
- assert(__pyx_t_8);
10684
- PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6);
10685
- __Pyx_INCREF(__pyx_t_8);
10682
+ if (unlikely(PyMethod_Check(__pyx_t_8))) {
10683
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
10684
+ assert(__pyx_t_9);
10685
+ PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8);
10686
+ __Pyx_INCREF(__pyx_t_9);
10686
10687
  __Pyx_INCREF(__pyx__function);
10687
- __Pyx_DECREF_SET(__pyx_t_6, __pyx__function);
10688
+ __Pyx_DECREF_SET(__pyx_t_8, __pyx__function);
10688
10689
  __pyx_t_10 = 0;
10689
10690
  }
10690
10691
  #endif
10691
10692
  {
10692
- PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_2, __pyx_v_location, __pyx_v_char};
10693
- __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (4-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10694
- __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
10693
+ PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_t_2, __pyx_v_char, __pyx_v_location};
10694
+ __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_10, (4-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET));
10695
+ __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
10695
10696
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10696
- __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
10697
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 576, __pyx_L1_error)
10698
- __Pyx_GOTREF(__pyx_t_9);
10697
+ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
10698
+ if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 578, __pyx_L1_error)
10699
+ __Pyx_GOTREF(__pyx_t_7);
10699
10700
  }
10700
- __pyx_t_16 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_t_9); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 576, __pyx_L1_error)
10701
+ __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_tokens, __pyx_t_7); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 578, __pyx_L1_error)
10701
10702
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
10702
- __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
10703
10703
 
10704
10704
 
10705
- /* "cobolparser/_lexer_fast.pyx":577
10706
- * # ---- unknown character ---------------------------------
10707
- * self.errors.append(LexerError(f"Invalid character: {char}", location, char))
10705
+ /* "cobolparser/_lexer_fast.pyx":579
10706
+ * # warning outside EXEC by the shared `_drop_stray_chars`.
10707
+ * tokens.append(Token(TokenType.STRAY_CHAR, char, location))
10708
10708
  * pos += 1 # <<<<<<<<<<<<<<
10709
10709
  *
10710
10710
  * return tokens
@@ -10713,7 +10713,7 @@ static PyObject *__pyx_pf_11cobolparser_11_lexer_fast_10CobolLexer_10tokenize_pr
10713
10713
  __pyx_L3_continue:;
10714
10714
  }
10715
10715
 
10716
- /* "cobolparser/_lexer_fast.pyx":579
10716
+ /* "cobolparser/_lexer_fast.pyx":581
10717
10717
  * pos += 1
10718
10718
  *
10719
10719
  * return tokens # <<<<<<<<<<<<<<
@@ -11517,40 +11517,40 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) {
11517
11517
  int __pyx_clineno = 0;
11518
11518
  CYTHON_UNUSED_VAR(__pyx_mstate);
11519
11519
  {
11520
- const struct { const unsigned int length: 8; } str_length_index[] = {{0},{1},{1},{1},{1},{1},{1},{1},{1},{9},{1},{1},{51},{1},{80},{13},{20},{11},{23},{19},{179},{18},{27},{36},{8},{27},{7},{8},{10},{34},{32},{32},{30},{19},{32},{4},{13},{1},{11},{20},{3},{19},{20},{2},{14},{23},{10},{8},{12},{16},{10},{7},{15},{9},{18},{18},{14},{14},{5},{9},{5},{1},{15},{15},{15},{13},{20},{23},{11},{18},{13},{25},{13},{20},{12},{17},{7},{8},{8},{13},{10},{15},{8},{11},{12},{8},{26},{21},{17},{13},{13},{21},{18},{18},{14},{23},{5},{6},{18},{2},{4},{5},{21},{18},{23},{17},{27},{15},{12},{18},{12},{12},{12},{13},{13},{1},{12},{6},{12},{9},{24},{9},{11},{12},{6},{19},{7},{7},{7},{5},{6},{4},{8},{5},{8},{13},{5},{7},{7},{9},{15},{10},{13},{5},{3},{3},{8},{5},{12},{5},{21},{31},{19},{9},{8},{4},{10},{6},{9},{18},{9},{5},{3},{4},{5},{10},{8},{21},{6},{4},{12},{5},{11},{5},{6},{8}};
11521
- const struct { const unsigned int length: 11; } bytes_length_index[] = {{294},{200},{1624},{195},{369},{380}};
11520
+ const struct { const unsigned int length: 8; } str_length_index[] = {{0},{1},{1},{1},{1},{1},{1},{1},{1},{9},{1},{1},{51},{1},{80},{13},{20},{11},{23},{179},{18},{27},{36},{8},{27},{7},{8},{10},{34},{32},{32},{30},{19},{32},{4},{13},{1},{11},{20},{3},{19},{20},{2},{14},{23},{10},{8},{12},{16},{10},{7},{15},{9},{18},{18},{10},{14},{14},{5},{9},{5},{1},{15},{15},{15},{13},{20},{23},{11},{18},{13},{25},{13},{20},{12},{17},{7},{8},{8},{13},{10},{15},{8},{11},{12},{8},{26},{21},{17},{13},{13},{21},{18},{18},{14},{23},{5},{6},{18},{2},{4},{5},{21},{18},{23},{17},{27},{15},{12},{18},{12},{12},{12},{13},{13},{1},{12},{6},{12},{9},{24},{9},{11},{12},{6},{19},{7},{7},{7},{5},{6},{4},{8},{5},{8},{13},{5},{7},{7},{9},{15},{10},{13},{5},{3},{3},{8},{5},{12},{5},{21},{31},{19},{9},{8},{4},{10},{6},{9},{18},{9},{5},{3},{4},{5},{10},{8},{21},{6},{4},{12},{5},{11},{5},{6},{8}};
11521
+ const struct { const unsigned int length: 11; } bytes_length_index[] = {{294},{200},{1620},{195},{369},{380}};
11522
11522
  #ifndef CYTHON_COMPRESS_STRINGS
11523
11523
  #define CYTHON_COMPRESS_STRINGS 90
11524
11524
  #endif
11525
- #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2975 bytes) */
11526
- static const char cstring[] = "BZh91AY&SY\017\334P\027\000\000o\377\377\377\377\377\377\377\377\377\377\377\377\377\375\277\377\377\373@@@@@@@@@@@@@\000@\000`\013_w\275\316\232{\336\363l=\035\260n\265\021t\256\356\346\200c9x\000\300\032\231\024\322\201\351= i\241\246\215\003F\2326\246\364\332\217@\223\324OP\320\360\312G\2506\246\232\0314\323A\215!\351\244\320\302i\240\224@\010\32114\310M52j\237\251\212\036\220z\232\032h\000\032\000\032\r\000\0004z\230\215\250\000\003A\246@\220\244h\200d\321\240\001\372\n4\310\320\000\000\036\240\000\003@4\001\210\000\017H\002SB$\302CI\242i\2656\236E=4CF\214\215<\243@\r4\001\247\250\000\000\003@4\310\030\233\325\0324A\200\002`\000\206&\t\200\000#\000&L\023&\000\004dbb0\020\300\000\002E\t\244z\214\"\237\250iM\352&\312y\047\250\031\000\030@\001\220\000\003&F\200\003OQ\202\r\036\240\t\342cv\263;\211n\0166\264\332nQ\252\016\032\265T\252\337sR:\342\375\205\373\255\357\353t\356\313P\227N\030\264 \2103U/\315\220m[]\265\330\200\"\005\331`\324b\205\n\274\2232v\006\010\246)\262J\305Y\277\340\354\002\020\222H\n**(\241\027\177\r\310\005\2112\312P91\047V\233\000\272/\210]rCbm&\306\325ee2\210\221%\205s\014L\2104\353\224\314I\240m6\223`\306\t\260o\376\341 \307Y\211\224J2\212\313D\032\333\321\274\013]\241\003\316\210M\021<\342Qv(\211i6\242\2444\357\233_Z\250\n\225f%M\233\361\031\025\210i\203hw\231\025\n\024(g\256\333s\264\230\323`\233\020\332Cm\203\035\245\225ej\373\025\345\252\322\322\332\252\316\030\223\004\216\364\013\334\226\n\203\2476\211\0057\261\212\013\005\306\245\251e\n\340`\200\255&\322\031A\023\234\356\226\016\214ja\303F}\365\323\033`\325m\023,\324\276K\030\240\341H\\\0274\004\34084m\251\023e\262\262R\037j)NHQ\020\232\20557\006d\273\276T\301\316 \217\251\013ev\\@z{2g\330\315\363\334\247\034\313\\Z\2235\324msz~W\255\246]\177\311\027tN\207S\035\353%\325\213\214\356T\352\326\367\210\232\227\354me5\370nA\005\207\r\265v=h\360v+\256\007-\261\253kVw\010iM\331\240\240\020\213\335\370\202\246\211\226\216\366\300\346aH\304$\224\244\322i9\247\302\224\245\341H\245\227L-\2514\2231""\222F\325\210\373>Q\347\304\266\303\237\314\273\010$\013\022\322\265\255\311)N\027i@\355\225\220\212\331f\020<\276\047\245\026\333\366f\313\325\324\354\2667iu\233%\027\021\033H0j\276\372<\377\023\tf\322g\336\232\263\256\342\350PFz\"\362A]#\032\211B\023\320\273\2520k\047\266\016\006[\231^\366\302%clco\332\317\327/D\260\013\t1\245,V#n\3578m\367x\242\016\214\313\020u\216\372MCo\231\006\310\"\224\302>\205\222,\253\251Jz\033\\\234^\356\257\246\313\372\375\351\343=Ea\372>\000~`p\256*\226\242_\211f\337G\035!$$\301\262dd\215o\256\214{\t8g\214\375\234(=%2\223?Z\022\017a\327\376\330a\361\341_1|\007L|\213OKp\231e\2165\354\267\317\311$^\3768\330\330\333lZyaW\225r.W#^\373\357\247\004.\206\302{\274\005\260\202\2176q\307\344\240\357u7\244v\370\317$\222V\262\244\323\326^yu\337j\036\245\355\301\274w\357\337\277\263\266\315\252,_\302\370\330\0341\220\305\275}f?\004\036\301\273\237\0301\005PU]\301\005\020z~\327\022DG\345L\223\332\233o\277u\374\320\216I\351?$2S\017#\t\366\047\004]\320,\\\\\206\261\274\327L\370\327h\367p]#\204\343\214B\023`\230H\320\022\210\003hd4a\301\314\023\323\263* \250\034\006\030U\233\177\240\307\223\216Y\267\302\2522\316\3175y&h\206Ao4\251\333\016\344{\"\3115\355\223\244\243[\027FNsaT\340oX\352\304\250\374\324xh\017\\GK\207\177bZ\025\330_^\213D;-juc\256i[P\316\245H\223\330PQ\205QD`\231\253\232*\273\337\245\230\026\203\006%\320\016\351\200s\334w_\226\376\356\344\274x*\"g\237\001\376\312x&\022[\240\343\035b6\016\032\255\032\355\021\r\177T\221\273;\3348\345\007\265\240\365\024\357A\316\3264]\233\370\047%\263\313\272\316\365\032\214\\&cG?P\313\343JM\217\235d\250\314Q\342]\006r\310\362\023O\024\260[\252\325\026\014\211\343\354^*\207\025\333\031v\271\246\241\005s^\242\010\247\260\370J\230\255\370\nB\233\341\331Y}\367\024\235}\216?\036\314_\326\021{5Q\326\324\321\036\203\213;\377\236\326\246\375yNB)\221>5d\276}\255\017\233\301\214\014\020UV\047\233\223v\207O\025\343\032\231\224\303\006Q\220\224om\340q\215S\214r\037\272($&MIw9\t\336\265\206\357\313)\n\274\370\330v^q`""\210\314\251Bv\225.\272ys`z9\256\325f\027ncc\252\350f\226)3\357\364\022\262\235st\234\3660,\320\243\207-\266\356\334\233\204\3153\"R\222\032\225\027\213\204r\255\257U\276\374\340@\276\017\204IN92\024g\274\r\233508\232X-\335{2G_\201\226iL\272\320\236\354\210q\024\341\\@%\026\030&E\373\346ro\247^\311\224_\334\350(\262\266\367\n\tW\3335T)G\277)s*vq\252[\222\240i\302k\007\212\004i\254\327\350i\010@\235\333E\004\230Ka\024\245(\306L5&\321kJD1\2546/\177t\307\222\366\202lPT\276X\332\236(\214\023\220\234z\372;\211\356wPT\342\302\306\213vv-A-\004\n&\266\202\344L\3243h\327D6\254\204Y\034\244H\266\252\231+_\3569\261L\016\022Og*N\304Y\210\345\001T\231\327V!\304\304\236\351\026\275\212\212\252\252\220\271\366KJ\323\232\023.Nc(\207|\232\031\234\254c\016X\034\025Ap\355\202\006\r\341 \326\313i\251\227\014\r\310\321\271\022\306\344\305\254\365]C\230\244\261\225\300\362lb\362\271\2505\302\214\025\027\245\257JO|\217\014\210\325\047\000\201\233\035x\025WZA@ \223k\230\206\207DW\002\033-(Y\020R`\333\304bd\330\350\235\206u\214v&\246\211\245$\325\300\333/\210\224\303\320\301f\315\257\244\235\207~\203U\0326\262-c\005Z\273\2752\010\334IP\251\rk\253\020i\0326\307\342\217\3567\313F\020\033\007\211\251\345j1N\217;\227\202g^\336V\204\031\272c\322\240\304\200\257\231\034\010*s\252M\257\356ql\327:\365xb\327\234\034w\023\300\201\333\267\257\300\r{\025\253\245\004\224y\231\0366\211\"T)\320\310\200\022cy\277|!\333i\221\230\326\020\025X\321qt\030\271t\350mu\210\326\265\020\241$\232\367`\022CI\221!jx\2314\034\306\000\264\014\366\230\343\270\334\233\215\333iM\354:\030\312\364\302\020q\016\247\275N\022\332\255\224\214g\000S~\215\342,\220\341I*\333r\262\304U\025\\\254e\257\232=\2356\243\220\253\232E\320\343~\272\246\272\206\246\222-[+\322\035L7\020\007(\254\033\321\006\t\264\220\306\275\303\225\312\300U\320\230\250\331\207<\200\216\331(e\232Y\272\342\204D\272\267P\1771\365U50b\245\360\024\005h\262\255*\310\220\261d\272!\242&\211\247-5\327\362\341az\035\235Z<\035\323\244\203n2\260\345\347j\215L\300\316\262,""\027]\025\010\020\014\363\352\226s\010k\256\263\227\"\322\210\";Ls\014\2560\355\350B;\225\275hg3f\271\0213\204nz\222\2358\373\333\377@\346\233\240|\320m\375a\370\036\273o\337li\211\267\320\200<o\351f\235\260\370\257\373\241S\021\316h\340!\212\r>\047\336\337@ (\243\364G\047\251\027\366\277\252\022~\222\336\322n\2504\264.\242;F\020]x@$\356\307\353.\037\312\346\277\216\374\021\307>\2629\221\014W\302\230n\2279~\2353a9\374K\272\333\243\204\267\241F\331F\312gI0{\277y\303\373\234O\3338\344\002B_Od\207\320\320\271\032\232\017a\364\354>\311\"vO\347\264w\006\333m!\263\246\331\213*>\265\377G&\251\207\243\304nW\272\207\325\242\020`\362C\313\207\022\031\376V\034@<\227\\\205\272S\361\310^\247-\272\035\356\355\334\250\346A\266\304\272[\233\230\272\322\305\226\017\212\261\022\357n\331+s;G)$\221\237\256<\252\201JL\010/\3543\264\274\033\221cd\210\222%\245\004\240`\047i\031by\304p\231\352\047\272\243\310\310O\000K\027\246%\235)1\346\222R\331\214\323\001JRL\010P\374\047\332\"|\023\364\223)\004 V\255g\340A%\"\020B\221\036\323SWt\302t\337m0\301Q \215P\243m\370R\230\014\341u\224G\007\t(\047\3554\226\220\320#y\204\362.<\303\004O\035\267^J\303\245\371\230\215\340\267\247\345\324\370\225VJ\331\321\265\260\3042\211 \203\036\r\017\262g\351\320t\302]u\337Tz/\263\331\000S\3622\203\303vKpJ\227*\023C\241\366w\303\252\221F\365\306\237\352\305\370t$\240\017\007\306c\037\216\027\323\341\t\241U\016\343\276\245r\023\035V{H\253Q;\367+g\035\332\315lI\313\005b\276Z\033pgI\212\344\354\245\357\032\227F\335\316\234\224(\003\"]\233\027\230\273\250\236m\2117,\331ny\r\t\327\373YI\337\236\342\0326\363\351\322\362)\227(\271%\005\255\3129\271\202\261HQ\275_a\247\254;\272YB\204\016\230\3779zK\013\337\343\266#\254\270\375\375\312\361\306\341nQv\361\310\343^\202\247F1g\257\236\336\335,X\311z\326P\335y\337>\330\304\302\357\014\033\376\027\232\230\350\337S\276\350^\363 \346\303\255/V\2525\001\014\010\242\323\030y\202Q\"\242t\260\372\321bcd\304\314\014\233Y\021]\016\030?\022\005\307\016\033\177(NhL\235I5\\\206F\005bp""\201\244I\362\0313\275\267\332]\304\247\370`P3\047,\337%NL\330\221w$\275+\300\201=\356X\201x\245;\030Qr\034\262N2\214b\212\204\367\207Y\254\202J\256c,r\352\047\225\2152sn.\325ei\335R\301\303\342L\014\246N\340\270\254f0\215\344\224\240h\223:\030\227{\200mg\033\347\032\307\rD\335\014\345\047\255\024\230\223\021\230!Z\321T\\\\B\246x\016\351\310\223_\370\273\222)\302\204\200~\342\200\270";
11527
- PyObject *data = __Pyx_DecompressString(cstring, 2975, 2);
11525
+ #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2951 bytes) */
11526
+ static const char cstring[] = "BZh91AY&SY=J\n5\000\000n\177\377\377\377\377\377\377\377\377\377\277\377\377\375\277\377\377\373@@@@@@@@@@@@@\000@\000`\013_t\000\336\357\024\365]h\246\353Qn\352\")A\332:\274\000@\032\231\024\322Ci2\r24\323A\240\320\323O\014M\246\210H\323\324\032y6\223B\017S\324\321\246L\201\350Cjf\241\206\223A(\200\020F\230\024\332\206\232\023S\312\203\020\364\3241\r\0004z\215\r4\000\0004b4\323i\r\000\320\006\247\240\"*4\230\023\0020!\236\202j`\312f\243&\0005\003L#&\320&\214\2153D0\003\0220Jh\210\243\312G\251\351\r\017P4=M\032\003F\203@\000\000\000\003@\001\243 d\000\321\220\004\030\002a0&\023\t\246\t\210\300\023\000F\206L\002`\000\000\004`&\000\000\004\211\004\000\210\232Oj\231\224\332M4\003@\000\000\000\000\000\000\320\0004\000\000\r+k\033\315\233NF|\047,\332m2r\2448\341\316\212\233~\262G\352/\330_\272\3763\263\316{\322\003\252(\241\243 B\013\304:\35082\223I\232L\206\001\230L\226\n\210\241B\2612s\231\315@J\226\316E\"\211\177\301\315\0061\266\3201\246\230\302\277\207\r\001z\271_}\310\336\205l\032\200\312\263\250c\212Cbm&\306\325\205\205\330\010\2315\302\262\241k$\r;\047R\324\3206\233I\260c\004\3307\315\343 \272\302\326^\224\241c\236\0102\314\314\232\234\307\266N\024\347Mq\023\262\302\254\242\243\262\047Z\n\232\226\230V\241Eaj\277\217\252\335O\025\232\032`\332\036\243\025\201\201\201\201\267f\232m4\230\323`\233\020\332Cm\203\036\206T\305\255y-fk33:Sh-P+6 \322k\001\242w]!U\233\"\030:\275\254\214V\027\231k5\240m&\322\031x\212\326\272Om\336\306\252\034\224mm\351Q\266\rX\321S-\315SW\n\034_\032\006\215\001X\0344t\neY\234\362\234\307\247H*YEB!\031\nj\367\263\"=\365\374\201\204A\037R\033E|W`\376\326\352iV\261\237\372\312\273\330\274\313\273\264\252\276;yU\256\312\253\360\305\317\274\310\311\314\326\254\325DTe\271A\367\242\267\210\225\005z\215U\351\247\276r\010Lii\203s\362\216&\034|\300\333\030`\305\301t\262\013\342\233\244\010\300\204+3\307\020\360K\250o\234\034\313\251\030\204\222\224\232M\0474\371\022\224\274t\212Ul\302\273\t\244\231\272A\032\326#\352\372\007\237\022\272\216\036\033n ""\220*J\313,\262\324\224\247\013s\240vT\370-U]Y\363\273}\006\316\177\257\217G\366\303>\257E\364\217xz\366\251\343(V\220fM\360\371\325\271\023j3\023Wt\260fl\010_VU\310)\260\241\206t\014\213\002f \261\213,\320(\026\373-8R\004\226F\270\306\277\275\217\3766\"T\005D\230\322\225+\021\266\366\270n\313{\361\007FeH:\247}f\241\340{\"\020I\355\307\322\252EV:\224\247\245\203\223W\273\217\242\315\237\020\365\217]Xzg\234\037\000Lnf+\004\263\326_\267\352k\341\326\322\215[\"v\305-R\2275E \266d|\347\355\344\240\364\224\312L\365P\220u\234}\306\027|\330Y\340^\343\232>%\247\251\220\227\337\273u\235U\371\370M\032\237\273,\233\033m\213\211\342\005;\355\021\242\321\0335j\325~\370i\034\t\3637\227\002\n<\333\256\357\236\203\276\014\336\221\303\326<RIV\313\t\247\262\274/\351\331Z\036\276\306\334\335y999-\337W\234B\246v\213\024\326\026\256\356\007V\027\275\347e\211\271\027\223\246\207a I^\004\024A\351\3548\222\">\373\323\3110\331\263+x!\033\323\324~\3447)\267\304\302}i\275\027\315\002\307\321\3537\315\234v\243\047\305\213\367\241\263\236\202\004I\215b\320\331\230\334\230\n\250(\311_\317\264!\313\322\352\000\360Q\202\205\357\333\2772z\371e\275\356\207\265\327\263\341\2572d\210^\025\360K\016\310tG\256,\223^\331:J5\261td\3476\026&\245\373\331-\030\226\220\202\217\014\301\372\262\367\315\335\333R\260\263i\262\316Z\304:\353jq\334i\212e\212722,\273Qx\3102LP-\3072Cs\355\326\032\314B\010Y\324:\213\203\206GS\357\344\352\3116\017\005DLq\336?\336N\344\272Kl1y~\222\033\027\rV\215vh\206\236\255tG]\333^\267\301\355h=E;`\347i\032\226\356M\351\314\265y\026\327\253\252\031\212\204\314X\313\311/x\022I\263\035\032d\243LM\342N\203,\2468I\245~R\0178\331\032Ap\371\030sX\201\273ZV\333\353\222\220\030\246\202\3031\020\262\026\250\220\311\354\2018R\256\035\2255\327Q9j-\340`Sq\370\272\255\232\204eg,\017p8\262\337\261~k\331\356!\024\274\236\2662^\205mO\016\3660.AUX\236]\355\3009\365]ca\211K6YE\222H\316\334\354\013F\300\301|\003H$&M9;\230)\336\212!\260\212g\n\0345\250\353\330j\301\021\227\322\204\353,-\266w\360`}\314W""\005e\331+!\242\346b\224RG\343\345%\205:f\3519\354`U\230\321\253]yd\231\t\212bD\272#\022\301up\216U\251\352\2736c\002\005\260|\"Jq\275\220\243<\300\331\263Ci\251\235B\333\323\266\346\376\355^\312s\275\322Bz\254\241\304OKQ\000\224R]&Ew\214\344\253\237\356\231I\027\342\341\025\230\266\031P\306\3734\027\016\351~\304]B\372\305\327\013i`\001\246SI\010\256\022\332|\030g\250c\006\326\214&cE\214\251JQ\032\361\341N\341\361\246\331]\254\241\265{\262\230\362^H\233T\0256Kui\337\210\3019\204\327\247\227\241>\026T\0255ab\241\237\037\203\014\320St\203\004\327 4E\206\341\257w`G#8\223%\211\"M\266\230+_\345pM\306\371\047\275\225\047R-\004r\200\252L\351\261\210jn\047\234\212\336\305EUUHZ\372\245\245\224\340\204\313S\200\312!\334M\014M\3651\2075\306\365PN\313X\200\240\253\203\203:\3551\257\014\016\326\321\\:j\325\0235\311^,\005%\272Y\205\013\242\036\366rD\2462\006\236\374\250\257\273e\247*\322\314\225\325\n\227\247\244\312\326\312\3417\001\004B\321\316jr\206Wd\325\330T\261\223q\010Y2\324\326Tp\205\017\"\021:\232\032\246N\260\007da)M\242(b\370\333\274B\230\236\004\014P\317\256\211\221zE-\357\225\010v\242%\007\240\251\242X\201\250\250\332\237r?\203|\204a\001\260x\231\2366c\024\327\315\345\367S8\341\313XA\231LzX\014H\n\371\221\270\202\247=\2116\277\206\255\232\343gG\217\026\274\336\343\241;\204;\330t\367\003^\204 \305r&R\0479\221.I2Srs\317[I6\215\275\330\305\256Jf\341H**\261\242\356t\030\267\363\346`\352\221\255j!BI5\352\200I\014\346D\205i\337d\320s\030\002\3201\300\335\273#$\310\313\nS\221\207+\031g<!\007\020\342\367\251\276X+m\264\332\272\240\315\234\344\270\203\265\034\355\366\267\216n0M\215\315\304cK\225#\177\0254X\346\221t5\331\246\211\246\201\241\234\212\326\2539\303\213\014\210\003\224V\r\345\203\004\300\220\306\275\303\225\312\300U\314\232\243f\034/\0028IB\374R\254\255(DKl\266\203\370\017\261T\320\271\212\233 (\n\321ee,dHT\262\\\320\315\0234\317\233=4\3757TlC\257\216o\007s\347 \303t\2529\274\335\021\251\210\030\304\240\272f\250<xc\217\031c0\323M%\036b\262h\";+\260\r\326\027vr\240""\336\330\256L\300\272\353\014Av\321ageE[\274\253\\\263\270c\201\346t\2260d\035$\226\032Bd2O\227\001t|l\342\362\003\334\325\364AF#\331h\336C\0244\371\\\306\371a\002\222>\314n\3760\275K\025\344\271\315\225\2421\331\3236}\276,_\240v\373\274\002N\354B\017\262\343?\005\364C\216b\021\305\210b\215\344\241\271\377\004\275\331&\2359\365\223\272\302\233\204\233\2276\266\213i\235+n\301\207\352/\261\234O~\343\220\t\typ\034\305i?\177Z\322;\217\347\rq\t\017\210|\330\247,cS\025\006%\370\305\244\243\177I\356o\336\"\203\036\231\271\210;\327 \222\222\304\"pA1\243\316\306\314=\234\251G\201\377)\343\t\017Cdm:\027;h\341\301\204\303!995\316j\t\220\225\205V@\226\310\014rs\350\273\322I#\265\344\037\203e3.U\n\344\035\355l\256\t\363\241\023\222#\245\004\240`\047u\032\002Q\3166\031\331NJ\216\205\004\335\010\343\004\304s\202\234\373\322Je\030\260`)JI\200\304-\207\216D\260K\2011\220A\365k\345\276\304\022R \0044\310\367Z\275r\363\336K6KL0o$\021\252\024o\262\024\246\0038V\350\272\306y\004\315\226\222\322\032\004o\274A\364[}\343\004O\235\245\276\227\002\312\334\204p\207\037\231\352\363\353\025\047\243~\365~\373\217!\351\244\202\017>\032\037\204\314\262\352\314%k]z\232\254{F\000\246D\363\257\213\221Z\2024x\320\232\026\030\365\020\265D\243\177m\246u\350m,$\240\017\206\017c\314\251\013\023\345\tv\222\027\222\305+\230\232\224\236\367\021S\232}&\351\351\035\363\206\343\311\256\233\240Y\365=h\230\340\322\253-\3119\256\360\232\235z\326\336-Y\263A\221;_?\235.\342\0339\202\257\005z\363\033!\251\047;\023z\262\270\234u\r\033zthg)\375\265\273\232\364\331\256/F\300\250Y\245U\221n4\315\007\356\025a6\027\3147\200N\0078\271R\304Y\216E\247&\244Q6[\363W\1772(\233\324VDBL\266\360\345oN\223\0217\263]\022\2632>\230\343\033\304;\030|m\014\241\211\205\341\302\351``\263\237\006\314}zH\262\010t\347\317\262;\226\004bA\374\273x\263\261\340\243\016%\035\211\363\244\0168?!\202H\350\251\024\343\030\215\364\240w \232<0\242\026\017/(\014\004\047\225CEY\247\366UC\242\366\332\t.\346\327-\222\024\227\220\342e\311XI\250`\377U\252""\302k\010\370*\215.\024\321\021E\232\265\202\214\2135T\271,\021\022%\332\325\314\206|\332\337e2\242e\"\322\212\251\tSU\253\226\026w9bZ+p\252\031\262#\2400I{\313:\254\2602\2276:\215\021\255 \231\201s\242,^\216Y\3135\300\204\233\314,\264\263$\000\254\025QHs\036\361w$S\205\t\003\324\240\243P";
11527
+ PyObject *data = __Pyx_DecompressString(cstring, 2951, 2);
11528
11528
  #define __Pyx_DecompressString_LZSS_UNUSED
11529
11529
  if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
11530
11530
  const char* const bytes = __Pyx_PyBytes_AsString(data);
11531
11531
  #if !CYTHON_ASSUME_SAFE_MACROS
11532
11532
  if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
11533
11533
  #endif
11534
- #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (3042 bytes) */
11535
- static const char cstring[] = "x\332\215V\315W\023Y\026\007E\005\305\356\024\t\002\nRA\020\265\225\356\000m+\255\343\204$\330Q\014\344\003l\235>]\247Ry@iR\225TU\2008g\372\314\222e-kY\313\267\254e-k\231e\226\265\314\237\300\2370\367\276JBP\316\314x$\365\336}_\367\376\356\357~\214\\\347\347\356/>z\374\230\227\324r\275\242\360O\226\326x\251\254\352\244\304\213\006O\224\022\257\356\361eY!\274\254\350\006\021\331\\\344+\242!\035\310\312>_\253\253\006y\225h\030\007\252\362D\224$R&\232h\300\351\304\326\372\326&_&\307D\373\225/ij\365\211\254\360\032\251\226E\211T\210b\360{\252\306\033\007\204\257\3265\362d\233]\300\037\022M\227Ue)\031/\304\371dz7\235OoeR\231\335tn+\363.\225)\364d\351d\337\020\026\322\033\351D\274\000\2633\261r(\226\345\022/\035\210\232(\031D[\3433\240*<\tv\005\372\362\262\316\227HY.2\225\313\r^74\031\267\342&\205\337Nm?Y}\266\312\213\000\202F>\021\311\320y\275^\224\312\242\256\023\035q(\326\345\262\001f\031\215*\321\227\370\364\036\337P\353\274B\300|C\345\253\260\257\377\000\030\253\360:1\230\325\213\242\242\250\206h\200\265\002\034\007(\027\371\222\254\301#\362!\301\323\033bY\047K\333\271\255D*\271\223K\365\354\332Q@\301\212\2540\220QapBY\006\231X\376/K\350L\346E\261T\022\340a\"\251E\265\\\0255\235h?\n\314K\302\236\250\033K\325\306qb\353\035b\235\330\311\345R\231\304\207\004\356\334\304\035g\243%\301\320\032\202\016\017\224\211\200\367\n\301s};\244\003\"}\026J\362\241\214\036\025\016\200:\347n\320@ (\365J\021_\326\324\212`\220c\343\353\365#U+]\270j\250\237\211\"\177!\027\210\204\252\246\356kbp\004\211\204\177B\217L}l\352\033\236\255oml\244_\357\344\200L\273)!\261\225\311\027\342\231\302\005\242|:y\236y\347g\302\327\364L\345\336\246>\274\337\312%\363\233\251\335\324\246\220\331y\267\236\312m\246\013\251\\|S\330\316\2456\322\277\247\362\314\224\224\246\251Z&\365~3\r\334\337y\227\312\245\023Bgc\217\017\275A\357\241|:\363z\023\364\373-\236\023\n[oS\231|\276\220\003Y\367h^\255k\022\331T%F\272\002\242\025\374\000yw\343\233;)A8Cs]\324I\337t\033b\264\367\220\260\221\316\345\031b\002\203v3\305""\254\025\372\341\354\312\276\002\345L\334\033\236\031\202\222\215\r!\235I\342\366\255\234\320\017\224\020\023\226\223\351\327\351\202\300vv\026p\"l7\216\341/\t\221+d\300\3459\262\047\010\235\350\"\002\374c\361\047\354\023\003B\241\202\202\222*\341g\257\256\260oE\224\025\366%\206\030\354\305\211Z\252\227\331\361\212\246\n\220\2574\231\260\005E\2540q\025r\231\250\261a\255.\226\273b\203\350\006\276\251V0\311\261\203\215 B\030?\365\257VtC\324\014\020\3265\215(\022\314\033\025\300\\\027JD\222+bY\300\354%\310xJS\353\006^\243V\211\322\2116\241\334q\3469!\313\310\347$\220\010\353\020\026*h\326\013\222\213\343W8\322\005Y\254\302\331\222\2507\024IV\227z/\353\322\001j\203\177\372\205\301-\261\213\000K\003\022.)\212\322\347\276$\263\324\227d\372\305L\332/\000\340IY_\202mB\021H\330\017\027x \000\312`:\367\217\205:(\255\365\243V\222\367e@\226\001\334S\024\354\352\2151i\367&\230h\010\321\264\036\244\004cP\047\307U\030\262\347K{\032!\002\024\255\n\324\206\022\300\306\224\016\036G\251\0105C\027\304r\365@\304AG\025\034v/\2211=+\340\314\016\340\240X\340,Y\007\376\324+\370\201\323\262\316TG\262\352e\242\354\033\007\270\237\235\201M\370\325\273J\226U\365\263\210\340\243sYIV\330\345\272B\216P\244@80Ao\000\356)\221cph\207\216\000\272!\003b\214\"8\321\253j\025N\002\273\367\344cR\202\\Z$\375\t\225)|a\356f\302\3569\241Sw\276Z>\237\3175\202\241\007\264\323%QA}uR\336\203\002Y\"{b\275l\350,a\0058Aw\322\035 \220uf~ \301s\300\215\252\336\320\361Rf\027\373a\036\356\022\376\302\352\020`\200\333\352}\245\223Q\211\375\004\260\234\375\350G\242\306\364\375w\274=|\333\212\372\360s\317\312Z\342\351\360\300H\304\374\233\315\331\017\3512\315;\327\3359\367\255W;\275:02z\262z\242\231\023\326\220\225\264\007\355q[\242\234?z\307zE\347[KI/\356\3556c\376\350\367\047\177Y\357\355\270\037\342\355!;n\177\244\377r7\2749o\2439\327\2147\263~h\302\254[qK\240[\356\257\236\210\267r\346\240?\374\335I\311\2343\343\376h\330\\5k\326 \336c\230\317\254\025Kb\017E@\223+N\336\035\364C\343\346{\270\200\335Tk\207\270\366\360-\263h""]A\325}\030J\326\004\323m\217\202]7N^\230\2725\017+\243SV\304\372`\213v\315\2779e\205\321\000\224M\331Q\377\346m\353>\034\341:\363v\3473\374\375I\335\214\233\177\330\023\364\206\023\013Pb\000\341\265kf\036u\014\233O-\256\213L\315\274a\375\002\367\005\322\366p\304LZ\203\326m{\215\346\250\356\334w\007\361\340s\363\255U\263\331\321\347\255\351\247\316\047\357\222\007\330\377\337\013+\316\232\233sk\337.<\246o\234\"\300\363\315B\314\271\355.\273Y\264\347\320\314\242\035<\254\301\317e;f\307O\307\006F\306L\320\366k\007\200U7C\200@\3024\300\t\304^\261E\206\270\017\210\217N\230\177\331Y[\246\232\023v\336\270E\357\212\227\275`\377\351\350\000\027\201\333t`W\344\021\215\266\361\307\217LZ#\340\037\364\304\344\035k\0254\275f\353t\236\226\234yGt\216\\\311\343\374\351e\047\352O\317\264\341\301\206\375=5Z+o\201Z\221\333\326\202\365\205r\355P\330\204\331\003:\342\21490\030\367\047\247\255\r;j\277tF\3341w\305\025]\303{\331\332\316\266#\017awd\002T\202w\340\271\326\235\037\030\247\007\235\210\223\365\247\037\320!\272\341D\341\216\351\031\237\277\007x\274\005\2238\237\237\267\3234KU7\357\r\266\371\237\235l{r\n\267L\007\240e\2349\047\216\223Q\032\247\202\233pkm@\231kO>\241\177\270\267\3009\270{\336N\200\205\323|\213\377\311\271\344\334s\262N\311\215voH\322\253Tl\375\030\367\306\274\030\312\206\354\r\032m\375\360\253\033s\267\232+M1\270/\202pON\267\246A\203\316\367O\334\277`\347\000\261G\316\272C\334X\033@|f/\333\005:Fc\354\275\025\347\0277\352\256\2725o\310[\367J\315\250?9k\325\230\t\340y;\002\247\r\372\3029v5/\342\345\274#xnr\321\376\0134\224A\024\366\3364\213\255\355\235\326\316n\340\037\303f*^\263\217\250\350\363\350\301\371\005\366\377!\276x\032\032\230\211\332#t\302\031\364\371\250\317\317\201\033\236\323u\372\331\345\334G\360<\246\223\251Yk\337\006\270\243\230SZ?\274\000\033A\355\273\020\225\223Sh\344!\313\027 \200]\300\262\010f\243\310x@(\314\001\261v\010)\033\272e*\366\272\275O\013\350=G\361~k\306\375\310\202\235=\2755\300\361\340_\240\305K\373\222\275\010\311\242\340p\316\023""\367\320\3137/#q\246\255w\014\036\366X\316:\262K@8\221\036\201O\026\320_\240\231\037\001\377\343\333\367\373\256\270\357\016{\203\235\345\340(l^\264k\0205\334\214\0059\356\216\025\203\200@N\017\006\304\036\303K&!C\306\255\217\340\244hW\272\014\250\327\272+\037\354\"\275D\0378\020\021h\030<\372\0206\274\247Ig\310\211;\037\334\003O\354\306\306\010\235\004B\002S\007\221\200\223\363,b!\252\326 \001F\346\3549\000\256s\351\237\364\231\023\0134\201p\300\371S\210\316\204\203tl\363K\264\0104D\336\002\271\223t\220\336u4\210\225g^\254\215\334\277p9\354&1\262\2779qz}`|\332Z\263\013\255\207/\335,:\216@\222\303\014\320\025\277BP;\3426\370m\237eg\030\300\017\007\307\231c\237B\032N0z\001\214\253\255Y<\324\037\342\317\255\327\010\346\035\2702\213\013\213@\237\350\267\354\350V\010\016\323\323\027;\322Zx\356r}\027]\370z\220\247\220\334\350\030\r\350;\344$\335A7\002\311U\367\356\201\321\235s\004\2425M?:\006\204\346k\010\276\356-}\331.\006\024\347\306\374H\267\2540\177\254[E\340Q\264\353\234\002\243\300\3574\313\262\325\214\225\207}\314\303:\354\351\270z\010\310-\3210\215\177#8\217\254w\325#\3155\214\317s\240\264;\263\005\273F\207Z\217q\3435\357\020*n$ \351\231\312\265n\"\357\307\"v\336\342\177\270W\335^\302\307\243\234y\315<\262D\304\264\365\350\357\336p\363z+\227\307j\021\303\312R\373w\034\262\375\310m(\262\254\016\243\0470\024\316j&j8\034\376\266\257\350\253<\234\0311\263\000/\224~\335\274gf1\240WM\315\032\263\226!C$!Y\307!*\307\234\025Gr!;N\261J\317\005\366\001\254\035e\321\021\034\304l+\272\014\204NA\036z\340=jn\200\266m\330\024\031o\303;\023P\2309\246<\026\357\020\024\306\035+\032\230\020\355+\216~P*!\374q[\024\373\231\377e\303W\355K\254\323\245\214\263~!\304Z\202s\237K\326\034pE\354\310\000\276\234\245\331\223\224\303\3329ku<06\301\272\230\200\347\343\254R\026\335\353\336<K\356\241Y\253\353\320\000\256\t\373\nT\003\216.@\3271\017PE\334\254K\274\025\310)\210\024\353\230B\346\020\2646\037-\326\325]\367GC\320\202\2152!|Z\241\207\364\026\2559Lt\t\034\221gmL\254\r\306\375\014\303)""\373Gg\302\275\001\231\203\365W\206\365\222^\246\260z\023[3\240\333\014\246\246)k2\340\242\037\200\216\257\006\r\325\207\326\335\237\234k\316?=\004<202k\225l\326}\316#M\300\030l@o\236\274\001\"\014\217\342\007u\274y\262\t-\3110S\026\313\310<4\037_\334\331&\266)#a$K\260}\263\323\010vT\345\320\017\035`\032\001Y\356\331\253\230\227\333,\335\207\302\2550\n\032\316e\314\2353V\241\025}\341B\000\336\267?\201\350\225\027\365\220!\343wq\341\027\247\346~\347}\202\276\302\017\032\220^\301b\003\014\353,\026\347,k\025\240P\322\347P\242%H\243qw\327[\206Z\204\026p\020#\255\231\247\320\352\034\272\337\\\2045&\013\231\343*T\271\017\016\024\2019(E\034\253\234>\017\275\014+\261KP\271\032\356%\367\036\266\047\336-Ok\206\233q\304&l.\242\305\234\311\231\017\255\247P\350\377tb\316o\356:\264Ta/~\372\035\302\270\005\224\304x\375\017\201\2438\353";
11536
- PyObject *data = __Pyx_DecompressString(cstring, 3042, 1);
11534
+ #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (3027 bytes) */
11535
+ static const char cstring[] = "x\332\215V\335W\323\330\026\007E\005\305\231\206\026)\n\222\"\2108\302L\201q\324\321\353\nmq\252X\350\0078xgMV\232\036 \332&m\222\002\365\256;k\036y\314c\036\363\230\307<\3461\217}\354c\036\373\047\360\047\334\275O\332R\224u\357uIs\316>_{\377\366o\177\214\334dg\037.<~\362\204\025\225r\275\"\263K\313/X\261\254h\244\304\n:K\344\022\253\354\263eI&\254$k:\021\350\\`+\202.\036J\362\001[\253+:y\235h\350\207\212\274$\210\")\023U\320\341tbk}k\223-\223\023\242\376\312\226T\245\272$\311\254J\252eA$\025\"\353\354\276\242\262\372!a\253u\225,m\323\013\330#\242j\222\"/\047\271\002\307&\323\273\351|z+\223\312\354\246s[\231\367\251L\241\047K\047\373\206\260\220\336H\047\270\002\314z\342\014\350\005\367\203\021\201r\254\244\261%R\226\212T\277r\203\325tU\022u\202J\0102\273\235\332^Z{\266\306\n`\261J>\021Q\327X\255^\024\313\202\246\021\r\215.\326\245\262\0166\350\215*\321\226\331\364>\333P\352\254L\300V]a\253\260\257\377\000X&\263\032\321\251\211\013\202,+\272\240\203i<\034\007\334\026\330\222\244\302#\322\021\301\323\033BY#\313\333\271\255D*\271\223K\365\214\330\221A\301\212$SDQa@\274,\201L(\377\227%\364\034u\231P*\361\3600\021\225\242R\256\n\252F\324\037y\352\022~_\320\364\345j\343$\261\365\036\201M\354\344r\251Lb/\201;7q\307\371h\231\327\325\006\257\301\003e\302\343\275|\360\\\337\016\361\220\210\237\371\222t$\241\373\370C\340\311\205\033T\020\360r\275R\304\227U\245\302\353\344D\377z\375XQK\227\256\352\312g\"K_\310%\"\276\252*\007\252\020\034A\326\340\037\337cN\037u\372\206\347\353[\033\033\3517;9`\316n\212Ole\362\005.S\270D\224O\047/\322\354\342\214\377\232\213\251\334\273\324\336\207\255\\2\277\231\332Mm\362\231\235\367\353\251\334f\272\220\312q\233\374v.\265\221\376=\225\247\246\244TUQ3\251\017\233i \372\316\373T.\235\340;\033{|\350\rz\017\345\323\2317\233\240\337o\\\216/l\275Ke\362\371B\216\333\243\002\030\301j\367\222\274RWE\262\251\210\224~\005\304-\370\001\032\357r\233;)\236?\307u]\320H\337t\033B\263\367$\277\221\206\253q\312S\2207S\324n\276\037\330\256\354+x\316\305\275""\341\271I(\331\330\340\323\231$n\337\312\361\375\220\361q~%\231~\223.\360tgg\001\047\374v\343\004\376\222\020\303|\006\234\237#\373<\337\2113\302\303?\032\211\374\001\321!(*(()\"~\366\3532\375V\004I\246_\242\013\301^\234(\245z\231\036\257\250\n\017iJ\225\010]\220\205\n\025W!\205\t*\035\326\352B\271+\326\211\246\343\233J\005s\033=\330\010b\2052U\373jE\323\005U\007a]U\211,\302\274Q\001\3145\276DD\251\"\224y\361PPy\tO\251J]\307k\224*\221;q\307\227;\316\274 \244\211\370\202\344H(\327!@\024\320\254\027.\227G2\177\254\361\222P\205\263%Ak\310\242\244,\367^\326\304C\324\006\377\264K\303\\\244\027\001\226\272\n\251\275(\210\237\373\322\315r_\272\351\027Si\277\000\200\047em\031\266\361E a?\\\340\201\000(\235\352\334?\346\353\240\264\332\217ZI:\220\000Y\npOQ\260\2537\306\364\335\233`\312!DU{\220\022\214F\215\234TaH\237/\355\253\204\360P\253*P%J\000\033U:x\034\245\002T\017\215\027\312\325C\001\007\035Up\330\275D\302D-\2033;\200\203b\201\263$\r\370S\257\340\007NK\032U\035\311\252\225\211|\240\037\342~z\0066\341W\353*YV\224\317\002\202\217\316\245\225X\246\227k29F\221\014\341@\005\275\001\270\247DN\300\241\035:\002\350\272\004\210Q\212\340D\253*U8\t\354\336\227NH\t\262j\221\364\247V\252\360\245Y\234\n\273\347\370N\005\372j\371bfW\t\206\036\320N\023\005\031\365\325Hy\037Je\211\354\013\365\262\256\321\204\025\340\004MIw\200@\326\251\371\201\004\317\0017\252ZC\303K\251]\364\207z\270K\370K\353D\200\001n\253\367\025QJ%\372\023\300r\376\243\035\013*\325\367o\256=|\327\214\371\360\363\300\314\232\302\331\360\300H\304\370\207\305X\213\366\212\235wn\272\263\356;\257vv}`d\364t\355T5&\314!3i\rZ\343\226h3\376\350=\363\265=\327ZNz\234\267\333\214\373\243\337\237\376e~\2608?\304ZC\026g}\264\377\355nx\263\336Fs\266\3115\263~h\302\250\233\234\311\333[\356\257\236\200\2672\306\240?\374\335i\311\23058\1774l\254\0315s\020\357\321\215g\346\252)\322\207\"\240\3115\047\357\016\372\241q\343\003\\@o\252\265CL{\370\216Q4\257\241\352>\014Es\202\352\266o\203]\267N_\032\2329\007+\243\223f\304\334\263\004""\253\346\337\2364\303h\000\312&\255\230\177\373\256\371\020\2160\235y\273\363\031\376\376\264np\306\037\326\204}\313\211\007(Q\200\360\332\027F\036u\014\033OM\246\213L\315\270e\376\002\367\005\322\366p\304H\232\203\346]\353\205\235\2635\347\241;\210\007\237\033\357\314\232E\217>oM=u>yW<\300\376\377^Xu^\2709\267\366\355\302\023\373\255S\004x\276Y\210;w\335\0257\213\366\034\031Y\264\203\2055\370\271j\305-\356ll`d\314\000m\277v\000Xu;\004\010$\014\035\234@\254UK\240\210\373\200\370\350\204\361\227\225\265$[u\302\316[\267\350]\363\262\227\354?\033\035`\"p\233\006\354\212<\266cm\374\361#Qs\004\374\203\236\210\3363\327@\323\033\226f\317\331%g\316\021\234cW\364\030\177j\305\211\371S\323mx\260a}o\353\255\325w@\255\310]s\336\374b3\355P\330\200\331#{\304\031s`0\356G\247\314\r+f\275rF\3341w\325\025\\\335{\325\332\316\266#\213\260;2\001*\301;\360\\\353\336\017\224\323\203N\304\311\372S\217\354!{\303\211\301\035S\323>\373\000\360x\007&1>;g\245\355\254\255\270yo\260\315\376\354d\333\321I\3342\025\200\226qf\035\016\047\2436g\363n\302\255\265\001e\246\035]\262\377p\357\200sp\367\234\225\000\013\247\330\026\373\223s\305y\340d\235\222\033\353\336\220\264\257\333B\353G\316\033\363\342(\033\2626\354X\353\207_\335\270\273\325\\m\n\301}\021\204;:\325\232\002\r:\337?q\377\274\225\003\304\036;\353\016q\343m\000\361\231\265b\025\3541;N\337[u~qc\356\232[\363\206\274u\257\324\214\371\321\031\263FM\000\317[\0218\255\333/\235\023W\365\"^\316;\206\347\242\013\326_\240\241\004\242\260\367\266Ylm\357\264vv\003\377\350\026U\361\206ul\013>\213\036\234\233\247\377\027\361\305\263\320\300t\314\032\261\047\234A\237\215\371\354,\270\341\271\275n\177v\031\3671<\217\351dr\306<\260\000\356\030\346\224\326\017/\301FP\373>Det\022\215<\242\371\002\004\260\013X\026\301l\024\031\017\010\2059 \336\016!eCw\014\331Z\267\016\354\002z\317\221\275\337\232\234\037\231\267\262gw\006\030\026\374\013\264xe]\261\026 Y\024\034\306Yr\217\274|\363*\022g\312|O\341\241\217\345\314c\253\004\204\023\354c\360\311<\372\0134\363#""\340\177|\373a\337\025\017\335ao\260\263\034\034\205\315\013V\r\242\206\2316!\307\3353\343\020\020\310\351\301\200\330cxI\0242$g~\004\047\305\272\322\025@\275\326]\331\263\212\366\025\373\221\003\021\201\206\301\243\213\260\341\203\235t\206\034\316\331s\017=\241\033\033#v\024\010\tL\035D\002F\347h\304BT\275\200\004\030\231\265f\001\270\316\245\177\332\317\234x\240\t\204\003\316\237Bt&\034\244c\233]\266\213@C\344-\220;i\017\332\367\035\025b\345\231\027o#\367/]\016\273I\214\354oN\234\335\034\030\2372_X\205\326\342+7\213\216#\220\3440\003t\305\257\021\324\216\270\r~;\240\331\031\006\360\303\300q\352\330\247\220\206\023\224^\000\343Zk\006\017\365\207\370s\363\r\202y\017\256\314\342\302\002\320\047\366-;\272\025\202\301\364\364\305\212\264\346\237\273L\337E\227\276\036\344)$7:F\005\372\0169Iw\320\215@r\325\274\007`t\347\034\201hM\333\037\035\035B\363\r\004_\367\226\276l\027\007\2123c~\244[V\250?\326\315\"\360(\326uN\201R\340w;K\263\325\264\231\207}\324\303\032\354\351\270z\010\310-\332a\233\373Fp\021Y\357\272G\232/0>/\200\322\356\314\346\255\232=\324z\202\033oxGPq#\001I\317U\256u\023y?\026\361\213\026\377\323\275\356\n\375\373\302\306\202\311\000\246H\311ig\337\245\225\"\216U\245\3667\007\231~\344.\024XZ\203\321\013\030\006\347\365\022\265\033\016\177\333S\364U\035\306\210\030Y\200\026\312\276f<0\262\030\314k\206j\216\231+\220\035\222\220\2509\210\3101g\325\021]\310\214\223\264\3123\201m\000iGQt\002\003\361\332\212\255\000\231S\220\203\036y\217\233\033\255\\\276\r\233\"\343mxg\002\2122C\225\307\302\035\202\242\270c\306\002\023b}\205\321\017\312$\204>n\213a/\363\277l\370\252u\211w:\224q\332+\204h;p\341s\305\234\005\236\010\035\031\300\2273U+j3X7g\314\016\372c\023\264\203\t8>N\253d\321\275\351\315\321\304\036\2321\273\316\014\340\232\260\256A%`\354y\3508\346\000\252\210\233u\211\267\n\371\004\221\242\335R\310\030\202\266\346\243I;\272\233\376h\010\332\257Q*\204O+\264h\337\261k\016\025]\001G\344i\013\023o\203q?\303p\322\372\321\231poA\326\240\275\225n\276\262\257\332\260z""\033\3332\240\3324\246\245I3\032\360\320\017@\307W\203fj\257u\377\047\347\206\363/\017\001\217\014\214\314\230%\213v\236sH\0230\006\233\317\333\247o\201\010\303\243\370A\035o\237nB;2L\225\305\0222\007\215\307\027w\246\211-\312H\030\311\022l\337\3544\201\035U\031\364C\007\230F@\226\007\326\032\346\3446M\365\241p+\214\202\206s\025\363\346\264Yh\305^\002\255\243\017\255O z\355\305<d\310\370}\\\370\305\251\271\337y\237\240\247\360\203\346\243W\254\350\000C:\213\2059K\333\004(\222\366s(\317\"\244P\316\335\365V\240\016\241\005\014\304Hk\372)\2649G\3567\027a}\311B\326\270\016\025n\317\201\0020\013e\210\241U\323g\241\217\241\345u\031\252V\303\275\342>\300\326\304\273\343\251\315p\223Clhxb\0301\306\242\371\024\212\374\237N\334\371\315]\207v*\354qg\337!\214[@I\214\327\377\000@i3\013";
11536
+ PyObject *data = __Pyx_DecompressString(cstring, 3027, 1);
11537
11537
  #define __Pyx_DecompressString_LZSS_UNUSED
11538
11538
  if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
11539
11539
  const char* const bytes = __Pyx_PyBytes_AsString(data);
11540
11540
  #if !CYTHON_ASSUME_SAFE_MACROS
11541
11541
  if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
11542
11542
  #endif
11543
- #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (4021 bytes) */
11544
- static const char cstring[] = "\377\t\n \"&\047*,\377, column\377 -.: clo\377sed at e\377nd of li\377ne inste\375a\013\002a matc\377hing quo\377te?Cytho\377n-accele\367rat;\000COBO\377L lexer;\377 drop-in\377 replace\377ment for\377 the pur\367e-P<\002 ver\377sion.DAT\377A DIVISI\377ONENVIRO\337NMENT\013\006ID\374\000\010\026\000IFICAT\374*\000\030\007nvalid\377 charact\037er: N\250\000p\000\325\000\376\252\003 is del\373ib\256\002ly st\363ri\047\001!\001n PE\177P-484 a\202 \377rejects \377subclass\373es\224!built\376\324\000types. \377If you n=e\272 to p%\000%\t\276\352\000n set\361\002\047\177annotat\353\000\371_<\000\310 \047 dir\336b\000ive ;\000Fa\377lse.PROC\337EDURE\205&Un\216\311\000min\340\"\255\001\202@l\215i\335\000al\000\030\311A\301Ba\367dd_v\000ecob\377olparser\373/_\241B_fast\177.pyxCOM\350!\377CURRENCY\345C&\001L\304A\000\007._t\357ry_s\376@le_\362\232a_\204\003\027\010chec\277k_divi\316A_\255h\270`er7\010r\311`_\367num\372 _fro\277m_text\020\rw\367ord\t\022toke\317nize\210\010\013\005_p\037rograK\003\305a\311a\341_\304f\303h\316h\026\007OFF\357IGUR\312`VE_\377CONSTANT>\000\020SIDID\356i\000\013\374h\006\035\005ERKEYW\377ORDSLEVE\377L_NUMBER\377LITERAL_\377PREFIXES\376\343\"ErrorNE\337WLINE$\000ER\207IC_\"\004\207f\220f\321\006S\357INGL\260\000HAR\377_TOKENSS\363TR\021\0003\005Sour_ceLoc\360bT\275!\376\000\002TypeVAL\357UE__\341GBas\275e\004\010Pure\272&__FIRST\316!_\326\"\007LEN\010\002\303)\014\005\206,\r\007\361_.\005\277\007D\001FF_I\273ND\310\206\001OR_\235)_\3771_2DIGIT\347_RE\017\007\t\001_Py\375x\001\000Dict_N\276\301`Ref__\327\205\004e\357____\254\206\002_ge\337titem\r\001do\335c\024\001fun\003\002ma{in$\001meta&\003\2763\000modul:\002m\377ro_entri\273esJ\001namQ\002p\337repar\\\002qu{al\017\005testp\001\223om\341\210\0014\002y\234\205\003\256\204\002s\373_c\r\nstart\376\022\000urrency\377_symbols\377_decimal\355_\272\210\001_i2\001rou\377tine_ope\rn\347\205\004_l\306D\010\n\215\212\002\032\n\377value_po\370\227\000\234\205\006\252\206\023_ws_i\373ap`\000dasyn\277cio.cos""\004sSch\310\211\001\314\211\001s\310\206\022c\204\207\002\376\311 traceba\013ck\332\207\010.\332\207\010\013\t\234\213\002\034\t\276\366 els.a\304 b\247ase\243)\377 c\244\"t\254\357\207\002\000\t_u\262\000r\252)d\307igi\327 \334\"\375\207\006en\341d\211\210\006\261\212\001\226\210\006\345\207\001eer\371r\312&\t\000orsex\277ponent\376@d\377free_for\377mhandle_\370\275\211\002\367\210\003\022\001athas?_alpha\005\001\272D\024\020\001=\005i\266\212\001n\312@\252\211\004\367@m_\272\215\002is\275`um\003\001\346;\000is\266\002\251\204\001sle\317ngth\373\215\001\340\211\002nu\365m\207\216\001s\360Elook\321a\326\211\001\331A\216\216\002n\211\212\002sn;ew\354Anex\245#\000\006\277_index\310`_\212\211\204\003p\374`i\345`\236b\t\001s\367pop\247`pref\377ixedprobAe\305\211\t\353\216\002\247\212\022\314\212\0020\005_\214\214\004\330\321\212\007\353\212\002\302\212\013re\367\205\001in\337gscan\234\204\001se\377lfsetdef\237aults\254\210\002\235\205\002_\367col\001\005ntin\271u\264\215\002\025\003pos\264\216\001p\207sys\277\213\001\225\213\002\232\213\002\324\215\001e\020\241\213\005\211\213\022\215\206\003\272\216\001u\313\215\010\306b\313b\361_\265\205\002\272\205\002\277\205\002swar\375n\254\001\200A\340\010\032\230\373!\330\002\000#\230Q\230a\377\360\010\000\t\024\220>\240\377\021\240)\2502\250S\260\377\n\270\"\270K\300q\360\377\006\000\t\014\2104\210r\377\220\027\230\004\230D\240\001\377\240\025\240c\250\021\330\014\377\033\230?\250$\320.D\377\300A\300V\3101\330\014\377\017\210~\230W\240A\330\377\020 \240\004\240A\240Z\377\250}\270F\300\"\300F\377\310\"\310A\310Q\330\020\377\027\220u\230A\230_\250\337O\270;\300aR\001\021\220\377\001\330\010\016\210d\220\"\377\220A\330\014\023\2204\220\367q\230\001D\001t\2208\230\3273\230cd\002\024\207\000\005\260\377S\270\001\330\020\025\220W\374>\000E\002q\340\020\021\340\010_\026\220b\230\005\267\001\330\010\000\267c\230\027\227\002f\250\325\000\013\377\210<\220s\230$\230a\377\330\014\031\230\024\230Y\240\377a\240q\330\r\031\230\023\374\275""\001\020\001\031\240!\330\r\032+\230&\314\000\021\t\004\340(\000\024\000\377\340\010\017\210u\220A\220\177\\\240\027\250\013\2601\240#\376\234\"\340\010\013\210:\220S\276\240\001\023\2206\230\021\222%q\257\220\013\2307M\000\014\021\002\340\377\010\024\220D\230\001\230\032\377\240:\250R\250s\260&\373\270\0015\0019\220K\230q\375\240\334\000\023\2209\320\0346\337\260j\300\002\300\371 \013\210\374\000\026$\0133\260:\270R\270\367q\330\010\"\r,\250J\260\371b\234 \010\0161\260\032\2702\273\270Q\314\001v\220Q\352A \376}\000\010 \240\003\2401\240\177A\360\022\000\t\022\220\302 \354\361-\355@\r\020\377\000C\220t\276\202@e\2403\240a\270Aq\375\330\357 \014\027\220~\240Q\377\240i\250r\260\023\260J\277\270b\300\005\300Q\035\020\360\257\014\000\021\024\314@s\333`\024\357*\250!\340\001\001\330\024\030\363\230\t\271`\206A\030\033\2304\376\213 \007\240s\250$\250d\377\260$\260a\260w\270c\377\300\021\330\0342\260!\330\367\034\035\340\252`y\240\017\250\357t\3203K\330`\024\032\230\377%\230z\250\021\340\020\023\377\2201\330\024(\250\t\260\373\022\260\006\000\025\330\030\034\230\377F\240!\240=\260\t\270\377\022\2703\270a\270t\300\177=\320PQ\340\024)+\000\363\024\027\300\000e\000\330\030\033\320\373\033+\317\204\002\001\260\024\260Q\377\330\034(\250\004\250F\260}!A\000\034\035\330 #\215 \375K\320\000\021\330 $\240I\377\250Q\250o\270S\300\001\377\340 5\260Q\340\030\031\366\214\000\330\034\257#N\260\"\260\375A\t\001\014\250A\250_\270\377C\270q\340\0341\260\021\177\340\030-\250\\\270\026\232@\356*\001$\240C\351`\034 \320\377 0\260\002\260#\260Q\357\260d\270!:\005D\250\006\377\250a\320/A\300\022\300\3751R\001\004\240F\250!\320\377+;\2701\270O\3103\323\310aJ\003\266\000q\330\000\320\034t\177\000\001\004^,\001%\240R\257 \377*\260B\260e\2701\340\376\302 8\2402\240T\250\022\375\250H\001\320 3\2607\270\377!\2704\270q\300\004\300\377B\300d\310!\330\030\037\263\230q\276\002\367@\240\024;\000t\377\250<\260x\270r\300\024\357\300R\300wl\000\030\047\240\365~\237\000i\020\000\023\300J\310\377b\320PU\320UV""\330\366\233Bt\240\236\002\007\240w\250wa\330 \304@\330$%\000\000\367\330$)n\001\360\020\000\035\377!\240\t\250\027\260\001\330\337 !\330 \"\204@9\250\177B\250k\270\021\270*|\000\276\313\207\001\031\037\230g\240\354 !\316\320\207\001\320+<\341\000\264\000\036\230_a\330\030\031\340\233@v\253\207\002\343\030\036\"\001\343`\344@!\330\024\271\025\373c\200\207\0011\340\020\257\204\001\020\377\026\220n\240B\240g\250\375T\272A\260n\300H\310A\377\330\024%\240Q\360\026\000\337\021 \230q\330\224`=\240\337\002\240\047\250\024 \000\021\260\177-\270v\300S\310\003\265a\347\034\230M\232\"h\002R\230w\273\240d\356`a\250w\221@%\254\254A\227\000\330\024\375@\330\340`&\3768\010&\270\010\300\001\330\030>\032\002\027\220v\230Rc\000\251 \377q\360\022\000\021\035\230A\377\330\020\033\2301\330\020\021\352\320\204\001\001\323\204\003\022\253 \024\030\230\377\004\230A\230Z\240s\250\265!\016\0052\261@q\330\023\004Y\377\240b\250\002\250(\260!{\340\024\210\206\001\024\032\230)\277@\377W\250D\260\004\260A\260_Y\270h\300a\366#q\327 \327\030\260\021\246\204\001\001\375a\030$\376\255\206\002\021\024\220:\230Q\330\277\024\"\240\"\240AM\005^\333\2508\211\205\001\030\230\256\000\034\230\377A\230^\2506\260\023\260\373C\260\300`\031\340 .\250\367b\260\002\263\204\002 $\240D\377\250\001\250\036\260r\270\022\237\2708\3001\340\370\204\001\n\022\023\353\270D\326\206\001\330\"\r\360\n\000\377\025\034\230:\240T\320)\357=\270Q\330\266@e\240:i\250\376\206\001\017\005?\201\205\001\036\230\022\002\345\340\265@g\231\212\002\276@a\330\020\375\021<\000\r\020\210t\2206\237\230\023\230C\230\333a\304 4s\320\0371\001\327\206\t9\230G\311!\371\033g\000\351\000\032\230\047\240\021\241\240\226`\250\214\001\222i\232\213\005\021\327\213\001z?\240\024\320%9\270\217@\243\207\006[\026\220k\020u\220\324\210\0014{\000\356\225Ar\250\027\367 D\270\001\377\270\024\270R\270s\300#\367\300Q\330\257\004e\2401\240\377I\250Z\260t\2701\270\333G\300\352@\026\220\277\002\006\000\376\225\211\0061\360\010\000\021\022\330\371\024\317\213\005\372B""B\230b\240\002\374\253\001\206cT\240\022\2402\240\373X\250\262@\025\330\030\035\230wS\240\001\330\205\003s\240!\343E\377\004\240B\240c\250\023\250\335A\000\016\360\006\000\317(\300\006\257\300e\310:\234\206\001\024\211)\340\376\007\004%\240q\250\004\320,>\200@\300\007\300v\310\244`\237\204\003\242\307\212\007q\301\212\005\204C\206#1\344\013[\347\270\006\270\350\212\006\210\213\001\021\220\007\357\220w\230a\374\211\001\320*@\177\300\010\310\n\320RS\253\216\001\3751\246\215\001q\200A\360\014\000\357\t\032\230\024\202\216\003\027\220zr\357\0001\314\217\006\336\217\002\340\010\023\306\217\017}\340\361\216\007\021\220\024\220Q\334 \377\014\017\210s\220#\220Q\376\315\206\0014\220r\230\022\2302\377\230W\240D\250\004\250A\377\250T\260\022\2603\260c\347\270\021\340\355 \346\216\001\021\330\024\346\201\206\001\024\025\226\214\005\205A\021\330\030\377!\320!2\260\"\260E\377\270\021\270(\300*\310F\372\253\000\340\"\000\024\025\340\014\021?\220\027\230\001\230\021\270\002\323\220\001\177\020\210v\220U\230!\275\003m!\222\215\010\330\010\246\215\002!\240\337\216\002\321!\314\220\001\244\035\260\220\0141\257\215\002\340\020\225\025\253\217\002\020\216\217\002\330\000\004\t\002\002\277\230\"\230B\230a\r\004\230\377\024\230R\230r\240\030\250m\021\270\215\001\037\230\354\215\004\022\027\301\220\002\372\204\221\003\025\245\215\002b\270\n\300$\316\330\212\002\020\037\230\311E\270\221\001r\230\377\027\240\005\240T\250\021\250\337%\250s\260$\250 \024\270\177Q\270e\3003\300a\245\"\376\255\221\002\020\220\004\220A\220Z\375\230\321\222\002\n\330\014\020\220\001\370\001\001\022\000\t\000\320\020)\250\026W\250q\260\016\002\002\206@S\302\220\002\3771\340\014\023\2205\230\001\377\230\031\240/\260\027\270\013\371\300\366@\334\221\001t\230=\250\003\365\250\033\000\r\227\222\001Q\330\024\035\376\227\210\001\031\230\030\240\021\240%\307\240q\330\357#\244\222\001\313\221\003Y\320\177\0360\260\007\260{\300\355!\177\024\000\t\037\230d\240\371\223\002\277$\230a\340\010\037\221\000\010\377\000\t\r\210J""\220a\330\363\010\014\003\001\366\223\001\r\210L\230\361\001\226\224\001\252\000\303\213\001$\240i\250_z\270\037\310\001\223\224\001\023\251a\222)\003L\202\223\004\244\004\021\213\224\001\224\213\0024{\220y\337\222\002\024#\2404\224\212\001\275\340\352\212\002\020\023\320\023\r\001y\373\260\003\305\217\001\035\230T\320!\377<\270A\330\030&\240j\276\020\000?\300!\3001\371\205\001\036\376\025\0017\260q\270\016\300j;\320P\224\204\0021\330\024\250\214\006\265\214\002\336\323\206\001Q\330\034%\346\214\001\035\330\377\034*\250!\2509\260B\377\260c\270\023\270A\270V\357\3002\300S\253\000\010\000\021\377\032\230\024\320\0356\260a\347\260v\2708\016\340\213\001Q\230b\377\240\006\240g\250Y\260a\377\330\030\"\240\047\250\021\330\275\034\234\214\001 )\250\021\336\215\002.\377\250a\250y\270\002\270#\376\233\220\001\300\026\300r\310\023\310\335A\262\226\001\023\220\047\322\204\001\021\220\377\021\220)\2306\240\024\240\377^\2601\260H\270B\270\177c\300\023\300A\360\016\323!\377O\2301\330\010\017\210q";
11545
- PyObject *data = __Pyx_DecompressString_LZSS(cstring, 4021, 5421);
11543
+ #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (4004 bytes) */
11544
+ static const char cstring[] = "\377\t\n \"&\047*,\377, column\377 -.: clo\377sed at e\377nd of li\377ne inste\375a\013\002a matc\377hing quo\377te?Cytho\377n-accele\367rat;\000COBO\377L lexer;\377 drop-in\377 replace\377ment for\377 the pur\367e-P<\002 ver\377sion.DAT\377A DIVISI\377ONENVIRO\337NMENT\013\006ID\374\000\010\026\000IFICAT\204*\000-\006N\225\000]\000\302\000\227\003 \377is delib\376\233\002ly stri\367cte\201\001an P\377EP-484 a\376\357\000rejects\377 subclas\367ses\201!buil\375t\301\000types.\377 If you {ne\247 to p%\000|%\t\327\000n set\336\002\377\047annotat\362\330\000_<\000\265 \047 di\275rb\000ive ;\000F\377alse.PRO\277CEDURE\362\006U\035n\236\000min\315\"\255\001\357 \033li\262\000al\000\030\266A\256B\357add_v\000eco\377bolparse\367r/_\216B_fas\377t.pyxCOM\376\325!CURRENC\313YC&\001L\261A\000\007._\337try_s\353@le\345_\207a_\204\003\027\010che\177ck_divi\273A[_h\245`er7\010r\266`\357_num\372 _fr\177om_text\020\r\357word\t\022tok\237enize\210\010\013\005_?prograK\003\262a\302\266a_\261f\260h\273h\026\007OF\337FIGUR\267`VE\377_CONSTAN}T\000\020SIDID\333i\370\000\013h\006\035\005ERKEY\377WORDSLEV\377EL_NUMBE\377RLITERAL\377_PREFIXE\375S\343\"ErrorN\277EWLINE$\000E\017RIC_\"\004\207f\220f\321\006\337SINGL\260\000HA\377R_TOKENS\177STRAY_C\016\000\370\007\000\033\000=\005Sourc/eLoc\372bT\307!\000\002\377TypeVALU\367E__\353GBase\336\004\010Pure\304&_F\257IRST\330!_\340\"L\203EN\010\002\315)\014\005\220,\r\007_\370.\005\311\007D\001FF_IN\335D\277\206\001OR_\247)_1\377_2DIGIT_\363RE\017\007\t\001_Pyx~\001\000Dict_N\313`\337Ref__\341\205\004e_\367___\266\206\002_get\357item\r\001doc\356\024\001fun\003\002mai=n$\001meta&\0033\000\337modul:\002mr\377o_entrie\335sJ\001namQ\002pr\357epar\\\002qua\275l\017\005testp\001o\311m\330\210\0014\002y\246\205\003\270\204\002s_}c\r\nstart\022\000\377urrency_\377symbols_\377decimal_\277char_i2\001r\377outine_o7pen\361\205\004_l\306D\010\n\374\204\212\002\032\nvalue_\343po\227\000\246\205\006\264\206\023_ws\357_iap`\000das\377yncio.coNs\004sch\212\001""\216\001s\322\206\022\371c\216\207\002\311 trace/back\344\207\010.\344\207\010\013\t\370\223\213\002\034\t\366 els.a\236\304 base\243)\377 c\262\244\"t\371\207\002\000\t_u\262\000r\036\252)digi\327 \334\"\207\210\006\207end\223\210\006\273\212\001\240\210\006\357\207\001e\347err\312&\t\000ors\377exponent\376\376@dfree_f\377ormhandl\343e_\307\211\002\201\211\003\022\001ath\377as_alphaP\005\001\272D\020\001=\005i\300\212\001n\312@\264\264\211\004\367@_\261\215\002is\275`u\231m\003\001;\000is\266\002\251\204\001s?length\362\215\001\352\211\002\327num\376\215\001s\360EloGoka\340\211\001\331A\205\216\002n\223\212\002\357snew\354Anex\374\245#\000\006_index*\310`_\211\204\003p\374`i\345`\236b\336\t\001spop\247`pr\377efixedpr\007obe\317\211\t\342\216\002\261\212\022\326\212\0020\005a_\226\214\004\333\212\007\365\212\002\314\212\013re\367\205\001\177ingscan\234\204\001\377selfsetd\177efaults\254\210\002\336\235\205\002_col\001\005nt\347inu\276\215\002\025\003pos\036\276\216\001psys\311\213\001\237\213\002\244\213\002B\336\215\001e\253\213\005\223\213\022\215\206\003\304\216\001u\325\215\010\304\306b\313b_\265\205\002\272\205\002\277\205\002sw\367arn\254\001\200A\340\010\357\032\230!\330\002\000#\230Q\377\230a\360\010\000\t\024\220\377>\240\021\240)\2502\250\377S\260\n\270\"\270K\300\377q\360\006\000\t\014\2104\377\210r\220\027\230\004\230D\377\240\001\240\025\240c\250\021\377\330\014\033\230?\250$\320\377.D\300A\300V\3101\377\330\014\017\210~\230W\240\377A\330\020 \240\004\240A\377\240Z\250}\270F\300\"\377\300F\310\"\310A\310Q\377\330\020\027\220u\230A\230\177_\250O\270;\300aR\001\377\021\220\001\330\010\016\210d\377\220\"\220A\330\014\023\220\3374\220q\230\001D\001t\220_8\2303\230cd\002\024\207\000\377\005\260S\270\001\330\020\025\363\220W>\000E\002q\340\020\021\177\340\010\026\220b\230\005\267\001\335\330\010\000c\230\027\227\002f\250\376\325\000\013\210<\220s\230$\377\230a\330\014\031\230\024\230\377Y\240a\240q\330\r\031\363\230\023\275\001\020\001\031\240!\330\257\r\032""\230&\314\000\021\t\004\340\374(\000\024\000\340\010\017\210u\220\377A\220\\\240\027\250\013\260\3711\240#\234\"\340\010\013\210:\373\220S\240\001\023\2206\230\021\276\222%q\220\013\2307M\000\014\376\021\002\340\010\024\220D\230\001\377\230\032\240:\250R\250s\357\260&\270\0015\0019\220K\367\230q\240\334\000\023\2209\320\177\0346\260j\300\002\300\371 \363\013\210\000\026$\0133\260:\270\337R\270q\330\010\"\r,\250\347J\260b\234 \010\0161\260\032\357\2702\270Q\314\001v\220Q\372\352A }\000\010 \240\003\240\3771\240A\360\022\000\t\022\261\220\302 \361-\355@\r\020\377\000C\373\220t\202@e\2403\240a\366\270Aq\330\357 \014\027\220~\377\240Q\240i\250r\260\023\377\260J\270b\300\005\300Q\276\035\020\360\014\000\021\024\314@s\276\333`\024*\250!\340\001\001\330\317\024\030\230\t\271`\206A\030\033\373\2304\213 \007\240s\250$\377\250d\260$\260a\260w\377\270c\300\021\330\0342\260\337!\330\034\035\340\252`y\240\277\017\250t\3203K\330`\024\377\032\230%\230z\250\021\340\377\020\023\2201\330\024(\250\357\t\260\022\260\006\000\025\330\030\377\034\230F\240!\240=\260\377\t\270\022\2703\270a\270\377t\300=\320PQ\340\024\315)+\000\024\027\300\000e\000\330\030\357\033\320\033+\317\204\002\001\260\024\377\260Q\330\034(\250\004\250\367F\260!A\000\034\035\330 \365#\215 K\320\000\021\330 $\377\240I\250Q\250o\270S\377\300\001\340 5\260Q\340\333\030\031\214\000\330\034\257#N\260\367\"\260A\t\001\014\250A\250\377_\270C\270q\340\0341\377\260\021\340\030-\250\\\270\271\026\232@*\001$\240C\351`\034\377 \320 0\260\002\260#\277\260Q\260d\270!:\005D\377\250\006\250a\320/A\300\367\022\3001R\001\004\240F\250\377!\320+;\2701\270OO\3103\310aJ\003\266\000q\330\000\323\320\034\177\000\001\004^,\001%\240\375R\257 *\260B\260e\270\3731\340\302 8\2402\240T\367\250\022\250H\001\320 3\260\3777\270!\2704\270q\300\377\004\300B\300d\310!\330\317\030\037\230q\276\002\367@\240\024\376;\000t\250<\260x\270r\277\300\024\300R\300wl\000\030\327\047\240~\237\000i\020\000\023\300\377J\310b\320PU\320U\333V\330\233Bt\240\236\002""\007\240\337w\250a\330 \304@\330$\335%\000\000\330$)n\001\360\020\377\000\035!\240\t\250\027\260\177\001\330 !\330 \"\204@\3779\250B\250k\270\021\270\371*|\000\313\207\001\031\037\230g\240:\354 !\320\207\001\320+<\341\000\264\000\177\036\230a\330\030\031\340\233@\215v\253\207\002\030\036\"\001\343`\344@!\347\330\024\025\373c\200\207\0011\340\020\376\257\204\001\020\026\220n\240B\240\367g\250T\272A\260n\300H\377\310A\330\024%\240Q\360\177\026\000\021 \230q\330\224`\177=\240\002\240\047\250\024 \000\377\021\260-\270v\300S\310\235\003\265a\034\230M\232\"h\002R\357\230w\240d\356`a\250w\262\221@%\254A\227\000\330\024\375@\330\372\340`&8\010&\270\010\300\001\373\330\030\032\002\027\220v\230R\374c\000\251 q\360\022\000\021\035\377\230A\330\020\033\2301\330\253\020\021\320\204\001\001\323\204\003\022\253 \024\377\030\230\004\230A\230Z\240\327s\250!\016\0052\261@q\330\376\023\004Y\240b\250\002\250(\357\260!\340\024\210\206\001\024\032\230\375)\277@W\250D\260\004\260\177A\260Y\270h\300a\366#]q\327 \030\260\021\246\204\001\001\375a\373\030$\255\206\002\021\024\220:\230\377Q\330\024\"\240\"\240AnM\005^\2508\211\205\001\030\230\256\000\377\034\230A\230^\2506\260\357\023\260C\260\300`\031\340 \337.\250b\260\002\263\204\002 $\377\240D\250\001\250\036\260r\177\270\022\2708\3001\340\370\204\001\256\n\022\023\270D\326\206\001\330\"\r\360\377\n\000\025\034\230:\240T\277\320)=\270Q\330\266@e\247\240:\250\376\206\001\017\005?\201\205\001\036\225\230\022\002\340\265@g\231\212\002\276@a\367\330\020\021<\000\r\020\210t\177\2206\230\023\230C\230\333a\316\304 4\320\0371\001\327\206\t9\230\345G\311!\033g\000\351\000\032\230\047\207\240\021\240\226`\250\214\001\222i\232\213\005\021\376\327\213\001z\240\024\320%9\270l\217@\243\207\006\026\220k\020u\220\324\210\001\2714{\000\225Ar\250\027\367 D\377\270\001\270\024\270R\270s\337\300#\300Q\330\257\004e\240\3771\240I\250Z\260t\270o1\270G\300\352@\026\220\277\002\373\006\000\225\211\0061\360\010\000\021\347\022\330\024\317\213\005\372BB\230b\363""\240\002\253\001\206cT\240\022\240\3572\240X\250\262@\025\330\030\337\035\230S\240\001\330\205\003s\240\375!\343E\004\240B\240c\250w\023\250A\000\016\360\006\000\317(\277\300\006\300e\310:\234\206\001\024\372\211)\340\007\004%\240q\250\004\373\320,\200@\300\007\300v\310\210\244`\237\204\003\307\212\007q\301\212\005\204C\206#1\276\344\013[\270\006\270a\034\t\023\177\220\047\230\021\230%\230\217\204\001\257\035\260f\270\246\216\0021\242\215\001q\377\200A\360\014\000\t\032\230]\024\376\215\003\027\220z\353\0001\310\217\006\256\332\217\002\340\010\023\302\217\017\340\355\216\007\021\357\220\024\220Q\330 \014\017\210\337s\220#\220Q\311\206\0014\220\377r\230\022\2302\230W\240\377D\250\004\250A\250T\260\377\022\2603\260c\270\021\340\334\351 \342\216\001\021\330\024\375\205\001\024\025\374\222\214\005\201A\021\330\030!\320!\3772\260\"\260E\270\021\270\377(\300*\310F\320RS\375\340\"\000\024\025\340\014\021\220_\027\230\001\230\021\344\217\0011\317\220\001\177\020\210v\220U\230!\275\003m!\216\215\010\330\010\242\215\002!\240\333\216\002\321!\310\220\001\244\035\254\220\0141\253\215\002\340\020\225\025\247\217\002\020\212\217\002\330\000\004\t\002\002\277\230\"\230B\230a\r\004\230\377\024\230R\230r\240\030\250m\021\264\215\001\037\230\350\215\004\022\027\275\220\002\372\200\221\003\025\241\215\002b\270\n\300$\316\324\212\002\020\037\230\305E\264\221\001r\230\377\027\240\005\240T\250\021\250\337%\250s\260$\250 \024\270\177Q\270e\3003\300a\245\"\376\251\221\002\020\220\004\220A\220Z\375\230\315\222\002\n\330\014\020\220\001\370\001\001\022\000\t\000\320\020)\250\026W\250q\260\016\002\002\206@S\276\220\002\3771\340\014\023\2205\230\001\377\230\031\240/\260\027\270\013\371\300\366@\330\221\001t\230=\250\003\365\250\033\000\r\223\222\001Q\330\024\035\376\223\210\001\031\230\030\240\021\240%\307\240q\330\357#\240\222\001\307\221\003Y\320\177\0360\260\007\260{\300\355!\177\024\000\t\037\230d\240\365\223\002\277$\230a\340\010\037\221\000\010\377\000\t\r\210J\220a\330\363\010\014\003""\001\362\223\001\r\210L\230\361\001\222\224\001\252\000\277\213\001$\240i\250_z\270\037\310\001\217\224\001\023\251a\222)\003L\376\222\004\244\004\021\207\224\001\220\213\0024{\220y\333\222\002\024#\2404\220\212\001\275\340\346\212\002\020\023\320\023\r\001y\373\260\003\301\217\001\035\230T\320!\377<\270A\330\030&\240j\336\020\000?\300!\300\236a\025\036\376\025\0017\260q\270\016\300j;\320P\224\204\0021\330\024\244\214\006\261\214\002\336\317\206\001Q\330\034%\342\214\001\035\330\377\034*\250!\2509\260B\377\260c\270\023\270A\270V\357\3002\300S\253\000\010\000\021\377\032\230\024\320\0356\260a\347\260v\2708\016\334\213\001Q\230b\377\240\006\240g\250Y\260a\377\330\030\"\240\047\250\021\330\275\034\230\214\001 )\250\021\332\215\002.\377\250a\250y\270\002\270#\376\227\220\001\300\026\300r\310\023\310\371A\256\226\001\232\206\002\330\014\021\220\021\377\220)\2306\240\024\240^\377\2601\260H\270B\270c\277\300\023\300A\360\016\323!O\177\2301\330\010\017\210q";
11545
+ PyObject *data = __Pyx_DecompressString_LZSS(cstring, 4004, 5408);
11546
11546
  #define __Pyx_DecompressString_UNUSED
11547
11547
  if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error)
11548
11548
  const char* const bytes = __Pyx_PyBytes_AsString(data);
11549
11549
  #if !CYTHON_ASSUME_SAFE_MACROS
11550
11550
  if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) }
11551
11551
  #endif
11552
- #else /* compression: none (5421 bytes) */
11553
- static const char bytes[] = "\t\n \"&\047*,, column -.: closed at end of line instead of a matching quote?Cython-accelerated COBOL lexer; drop-in replacement for the pure-Python version.DATA DIVISIONENVIRONMENT DIVISIONID DIVISIONIDENTIFICATION DIVISIONInvalid character: Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.PROCEDURE DIVISIONUnterminated string literalUnterminated string literal at line add_notecobolparser/_lexer_fast.pyxCOMMENTCURRENCYCobolLexerCobolLexer._try_single_line_stringCobolLexer.check_division_headerCobolLexer.read_number_from_textCobolLexer.read_word_from_textCobolLexer.tokenizeCobolLexer.tokenize_program_textDATADATA_DIVISIONEENVIRONMENTENVIRONMENT_DIVISIONEOFFIGURATIVE_CONSTANTFIGURATIVE_CONSTANTSIDIDENTIFICATIONIDENTIFICATION_DIVISIONIDENTIFIERKEYWORDSLEVEL_NUMBERLITERAL_PREFIXESLexerErrorNEWLINENUMERIC_LITERALPROCEDUREPROCEDURE_DIVISIONSINGLE_CHAR_TOKENSSTRING_LITERALSourceLocationTokenTokenTypeVALUE__CobolLexerBase_CobolLexerPure_DIVISION_FIRST_DIV_DATA_LEN_DIV_ENVIRONMENT_LEN_DIV_IDENTIFICATION_LEN_DIV_ID_LEN_DIV_PROCEDURE_LEN_FF_INDICATOR_LEVEL_NUMBER_1_2DIGIT_RE_LEVEL_NUM_RE__Pyx_PyDict_NextRef__annotate____class_getitem____doc____func____main____metaclass____module____mro_entries____name____prepare____qualname____test___comment_entry_line_tokens_comment_entry_starts_currency_symbols_decimal_char_is_coroutine_open_string_location_open_string_quote_open_string_value_post_tokenize_try_single_line_string_ws_iappendasyncio.coroutineschcharcharscheck_division_headercline_in_tracebackcobolparser._lexer_fastcobolparser.lexercobolparser.models.ast_basecomment_entriescurrent_linecurrent_line_upperdecimal_chardigits_startdivision_enddivision_typedivision_wordeerr_locationerrorsexponent_endfree_formhandle_cobol_line_formathas_alphahas_decimalhas_exponentinternis_line_start_quoteisalnumisalphaisdigititemslengthlineline_numlineslocationlookah""ead_posmatchn_linesnew_posnext_linenext_line_indexout_tokenspartial_valuepartspopposprefixedprobeprogram_textquoteread_number_from_textread_prefixed_literal_from_textread_word_from_textremainingscan_posselfsetdefaultsourcestart_colstart_continuationstart_posstripsystexttokentoken_typetokenizetokenize_program_texttokenstypeunterminatedupperupper_valuevaluevalueswarnings\200A\340\010\032\230!\330\010\032\230#\230Q\230a\360\010\000\t\024\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\360\006\000\t\014\2104\210r\220\027\230\004\230D\240\001\240\025\240c\250\021\330\014\033\230?\250$\320.D\300A\300V\3101\330\014\017\210~\230W\240A\330\020 \240\004\240A\240Z\250}\270F\300\"\300F\310\"\310A\310Q\330\020\027\220u\230A\230_\250O\270;\300a\360\006\000\t\021\220\001\330\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\330\014\017\210t\2208\2303\230c\240\025\240c\250\024\250S\260\005\260S\270\001\330\020\025\220W\230A\230Q\330\020\027\220q\340\020\021\340\010\026\220b\230\005\230Q\230a\330\010\026\220c\230\027\240\001\240\025\240f\250A\340\010\013\210<\220s\230$\230a\330\014\031\230\024\230Y\240a\240q\330\r\031\230\023\230D\240\001\330\014\031\230\031\240!\330\r\032\230&\240\001\240\021\330\014\031\230\031\240!\340\014\031\230\031\240!\340\010\017\210u\220A\220\\\240\027\250\013\2601\200A\340\010\032\230#\230Q\230a\340\010\013\210:\220S\230\001\330\014\023\2206\230\021\360\006\000\t\014\2104\210q\220\013\2307\240!\330\014\023\2206\230\021\340\010\024\220D\230\001\230\032\240:\250R\250s\260&\270\001\340\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0346\260j\300\002\300!\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0346\260j\300\002\300!\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0343\260:\270R\270q\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\034,\250J\260b\270\001\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0341\260\032\2702\270Q\340\010\017\210v\220Q\200A\340\010 \240\001\330\010 \240\003\2401\240A\360\022\000\t""\022\220\021\340\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\360\006\000\r\020\210u\220C\220t\2303\230e\2403\240a\330\020\027\220q\330\020\021\340\014\027\220~\240Q\240i\250r\260\023\260J\270b\300\005\300Q\360\006\000\r\020\210u\220C\220t\2303\230e\2403\240a\360\014\000\021\024\2204\220s\230!\330\024*\250!\340\024*\250!\330\024\030\230\t\240\025\240a\240q\330\030\033\2304\230q\240\007\240s\250$\250d\260$\260a\260w\270c\300\021\330\0342\260!\330\034\035\340\020\027\220y\240\017\250t\3203K\3101\330\024\032\230%\230z\250\021\340\020\023\2201\330\024(\250\t\260\022\2601\330\024\025\330\030\034\230F\240!\240=\260\t\270\022\2703\270a\270t\300=\320PQ\340\024)\250\021\340\024\027\220t\2304\230q\330\030\033\320\033+\2502\250S\260\001\260\024\260Q\330\034(\250\004\250F\260!\2601\330\034\035\330 #\2401\240K\250r\260\021\330 $\240I\250Q\250o\270S\300\001\340 5\260Q\340\030\031\330\034\035\330\034 \240\003\2401\240N\260\"\260A\330\034 \240\014\250A\250_\270C\270q\340\0341\260\021\340\030-\250\\\270\026\270q\330\030\031\330\034$\240C\240q\330\034 \320 0\260\002\260#\260Q\260d\270!\330\034 \240\003\2401\240D\250\006\250a\320/A\300\022\3001\330\034 \240\004\240F\250!\320+;\2701\270O\3103\310a\340\0341\260\021\340\024\027\220q\330\030\034\320\0345\260Q\330\030\034\320\0345\260^\3001\330\034%\240R\240s\250*\260B\260e\2701\340\030\033\2308\2402\240T\250\022\2501\330\034 \320 3\2607\270!\2704\270q\300\004\300B\300d\310!\330\030\037\230q\340\030\031\330\034 \240\001\240\024\240R\240t\250<\260x\270r\300\024\300R\300w\310a\340\030\047\240~\260Q\260i\270r\300\023\300J\310b\320PU\320UV\330\030\033\2304\230t\2401\330\034 \240\007\240w\250a\330 *\250!\330$%\330$%\330$)\250\022\2501\360\020\000\035!\240\t\250\027\260\001\330 !\330 \"\240!\2409\250B\250k\270\021\270*\300B\300a\360\010\000\031\037\230g\240Q\330\034!\240\021\240)\320+<\270O\3101\340\030\036\230a\330\030\031\340\024\027\220v\230W\240A\330\030\036\230g\240Q\240a\330\024\032\230!\330\024\025\360\006\000\r\020\210t\2208""\2301\340\020 \240\001\330\020\026\220n\240B\240g\250T\260\024\260Q\260n\300H\310A\330\024%\240Q\360\026\000\021 \230q\330\020\023\220=\240\002\240\047\250\024\250T\260\021\260-\270v\300S\310\003\3101\330\024\034\230M\250\022\2501\330\024\027\220v\230R\230w\240d\250$\250a\250w\260d\270%\270q\330\030!\240\021\330\024#\2401\330\024\032\230&\240\002\240\047\250\024\250T\260\021\260&\270\010\300\001\330\030!\240\021\330\024\027\220v\230R\230q\330\030\047\240q\360\022\000\021\035\230A\330\020\033\2301\330\020\021\330\024\030\230\001\330\024\030\230\t\240\022\2401\330\024\030\230\004\230A\230Z\240s\250!\330\024\030\230\t\240\022\2402\240R\240q\330\024\030\230\004\230A\230Y\240b\250\002\250(\260!\340\024 \240\001\330\024\032\230)\2402\240W\250D\260\004\260A\260Y\270h\300a\330\030\033\2304\230q\240\t\250\030\260\021\330\034(\250\001\330\034\035\330\030$\240A\360\022\000\021\024\220:\230Q\330\024\"\240\"\240A\330\024\030\230\004\230A\230^\2508\2601\330\024\030\230\001\330\030\034\230A\230^\2506\260\023\260C\260q\330\030\031\340 .\250b\260\002\260\"\260A\330 $\240D\250\001\250\036\260r\270\022\2708\3001\340\034\035\330 .\250b\260\002\260\"\260A\330 $\240D\250\001\250\036\260r\270\023\270D\300\005\300Q\330 $\240D\250\001\250\036\260r\270\022\2708\3001\360\n\000\025\034\230:\240T\320)=\270Q\330\030\036\230e\240:\250Q\360\006\000\025\034\230:\240T\320)?\270q\330\030\036\230e\240:\250Q\340\020\026\220g\230Q\230a\330\020\026\220a\330\020\021\360\n\000\r\020\210t\2206\230\023\230C\230t\2401\330\020\033\2304\320\037?\270q\330\024\032\230%\230z\250\021\340\020\023\2209\230G\2401\330\024\033\230:\240Q\330\024\032\230\047\240\021\240!\330\024\032\230!\330\024\025\360\006\000\r\020\210t\2208\2303\230c\240\025\240c\250\021\330\020\027\220z\240\024\320%9\270\021\330\024\032\230%\230z\250\021\340\020\026\220g\230Q\230a\330\020\026\220a\330\020\021\360\n\000\r\020\210u\220C\220t\2304\230t\2402\240R\240r\250\027\260\004\260D\270\001\270\024\270R\270s\300#\300Q\330\020\026\220g\230Q\230e\2401""\240I\250Z\260t\2701\270G\3001\330\020\026\220a\330\020\021\360\006\000\r\020\210u\220C\220t\2301\360\010\000\021\022\330\024\031\230\023\230D\240\001\330\024\030\230\004\230B\230b\240\002\240!\330\024\030\230\004\230A\230T\240\022\2402\240X\250Q\330\024\025\330\030\035\230S\240\001\330\030\033\2304\230s\240!\330\030\033\2304\230q\240\004\240B\240c\250\023\250A\330\030\033\2304\230q\240\004\240B\240c\250\023\250A\360\006\000\025\034\230:\240T\320)?\270q\300\006\300e\310:\320UV\330\024\032\230\047\240\021\240!\330\024\032\230!\340\024\032\230\047\240\021\240%\240q\250\004\320,?\270q\300\007\300v\310Q\330\024\033\2301\330\020\021\360\006\000\r\020\210u\220C\220q\330\020\027\220q\330\020\021\360\n\000\r\020\210u\220C\220t\2301\330\020\026\220g\230Q\230e\2401\240I\250[\270\006\270a\330\020\027\220q\330\020\021\360\006\000\r\021\220\007\220w\230a\230z\250\021\320*@\300\010\310\n\320RS\330\014\023\2201\340\010\017\210q\200A\360\014\000\t\032\230\024\230Q\230a\330\010\027\220z\240\022\2401\330\010\032\230#\230Q\230a\340\010\032\230!\340\010\023\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\340\010\016\210d\220\"\220A\330\014\021\220\024\220Q\220a\330\014\017\210s\220#\220Q\330\020\023\2204\220r\230\022\2302\230W\240D\250\004\250A\250T\260\022\2603\260c\270\021\340\024\031\230\027\240\001\240\021\330\024\033\2301\330\024\025\330\020\027\220q\330\020\021\330\024\031\230\021\330\030!\320!2\260\"\260E\270\021\270(\300*\310F\320RS\340\024\025\330\024\025\340\014\021\220\027\230\001\230\021\330\014\023\2201\360\006\000\t\020\210v\220U\230!\200A\360\014\000\t!\240\001\330\010 \240\003\2401\240A\330\010 \240\001\330\010!\240\021\360\006\000\t!\240\004\240A\340\010\023\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\340\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\330\014\017\210t\2208\2301\330\020\027\220q\340\020\025\220S\230\001\330\020\024\220D\230\001\330\020\024\220D\230\001\330\020\024\220D\230\002\230\"\230B\230a\330\020\024\220D\230\001\230\024\230R\230r""\240\030\250\021\360\014\000\021\037\230a\330\020\027\220q\330\022\027\220s\230$\230c\240\025\240c\250\025\250d\260$\260b\270\n\300$\300d\310!\330\020\037\230q\330\020\027\220q\330\020\023\2204\220r\230\027\240\005\240T\250\021\250%\250s\260$\260c\270\024\270Q\270e\3003\300a\330\024\033\2301\340\020\021\340\010\020\220\004\220A\220Z\230q\360\006\000\t\n\330\014\020\220\001\330\014\020\220\004\220A\330\014\020\320\020)\250\026\250q\260\001\330\014\020\220\002\220#\220S\230\001\230\032\2401\340\014\023\2205\230\001\230\031\240/\260\027\270\013\3001\340\010\013\210<\220t\230=\250\003\2501\340\014\r\330\020\025\220Q\330\024\035\230Q\330\024\031\230\030\240\021\240%\240q\330\024\025\330\024\025\340\020\021\340\010\017\210u\220A\220Y\320\0360\260\007\260{\300!\200A\360\024\000\t\037\230d\240!\330\010\032\230$\230a\340\010\037\230q\360\010\000\t\r\210J\220a\330\010\014\210J\220a\360\006\000\t\r\210L\230\001\360\010\000\t\n\330\014!\240\021\240$\240i\250z\270\037\310\001\360\006\000\t\023\220#\220Q\220a\330\010\014\210L\230\005\230Q\230a\330\014\023\2205\230\001\230\021\330\014\017\210q\330\020\023\2204\220y\240\001\240\021\330\024#\2404\240s\250!\340\024#\2401\330\020\023\320\023#\2404\240y\260\003\2601\330\024\035\230T\320!<\270A\330\030&\240j\260\003\260?\300!\3001\360\006\000\025\036\230T\320!7\260q\270\016\300j\320PQ\330\020\023\2201\330\024\036\230g\240Q\240a\330\024\036\230g\240Q\330\030\035\230Q\330\034%\240Q\330\034\035\330\034*\250!\2509\260B\260c\270\023\270A\270V\3002\300S\310\001\360\010\000\021\032\230\024\320\0356\260a\260v\270Q\330\020\023\2201\330\024\036\230g\240Q\240a\330\024\027\220v\230Q\230b\240\006\240g\250Y\260a\330\030\"\240\047\250\021\330\034!\240\021\330 )\250\021\330 !\330 .\250a\250y\270\002\270#\270S\300\001\300\026\300r\310\023\310A\360\010\000\t\023\220\047\230\021\330\014\021\220\021\220)\2306\240\024\240^\2601\260H\270B\270c\300\023\300A\360\016\000\t\r\210O\2301\330\010\017\210q";
11552
+ #else /* compression: none (5408 bytes) */
11553
+ static const char bytes[] = "\t\n \"&\047*,, column -.: closed at end of line instead of a matching quote?Cython-accelerated COBOL lexer; drop-in replacement for the pure-Python version.DATA DIVISIONENVIRONMENT DIVISIONID DIVISIONIDENTIFICATION DIVISIONNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.PROCEDURE DIVISIONUnterminated string literalUnterminated string literal at line add_notecobolparser/_lexer_fast.pyxCOMMENTCURRENCYCobolLexerCobolLexer._try_single_line_stringCobolLexer.check_division_headerCobolLexer.read_number_from_textCobolLexer.read_word_from_textCobolLexer.tokenizeCobolLexer.tokenize_program_textDATADATA_DIVISIONEENVIRONMENTENVIRONMENT_DIVISIONEOFFIGURATIVE_CONSTANTFIGURATIVE_CONSTANTSIDIDENTIFICATIONIDENTIFICATION_DIVISIONIDENTIFIERKEYWORDSLEVEL_NUMBERLITERAL_PREFIXESLexerErrorNEWLINENUMERIC_LITERALPROCEDUREPROCEDURE_DIVISIONSINGLE_CHAR_TOKENSSTRAY_CHARSTRING_LITERALSourceLocationTokenTokenTypeVALUE__CobolLexerBase_CobolLexerPure_DIVISION_FIRST_DIV_DATA_LEN_DIV_ENVIRONMENT_LEN_DIV_IDENTIFICATION_LEN_DIV_ID_LEN_DIV_PROCEDURE_LEN_FF_INDICATOR_LEVEL_NUMBER_1_2DIGIT_RE_LEVEL_NUM_RE__Pyx_PyDict_NextRef__annotate____class_getitem____doc____func____main____metaclass____module____mro_entries____name____prepare____qualname____test___comment_entry_line_tokens_comment_entry_starts_currency_symbols_decimal_char_is_coroutine_open_string_location_open_string_quote_open_string_value_post_tokenize_try_single_line_string_ws_iappendasyncio.coroutineschcharcharscheck_division_headercline_in_tracebackcobolparser._lexer_fastcobolparser.lexercobolparser.models.ast_basecomment_entriescurrent_linecurrent_line_upperdecimal_chardigits_startdivision_enddivision_typedivision_wordeerr_locationerrorsexponent_endfree_formhandle_cobol_line_formathas_alphahas_decimalhas_exponentinternis_line_start_quoteisalnumisalphaisdigititemslengthlineline_numlineslocationlookahead_posma""tchn_linesnew_posnext_linenext_line_indexout_tokenspartial_valuepartspopposprefixedprobeprogram_textquoteread_number_from_textread_prefixed_literal_from_textread_word_from_textremainingscan_posselfsetdefaultsourcestart_colstart_continuationstart_posstripsystexttokentoken_typetokenizetokenize_program_texttokenstypeunterminatedupperupper_valuevaluevalueswarnings\200A\340\010\032\230!\330\010\032\230#\230Q\230a\360\010\000\t\024\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\360\006\000\t\014\2104\210r\220\027\230\004\230D\240\001\240\025\240c\250\021\330\014\033\230?\250$\320.D\300A\300V\3101\330\014\017\210~\230W\240A\330\020 \240\004\240A\240Z\250}\270F\300\"\300F\310\"\310A\310Q\330\020\027\220u\230A\230_\250O\270;\300a\360\006\000\t\021\220\001\330\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\330\014\017\210t\2208\2303\230c\240\025\240c\250\024\250S\260\005\260S\270\001\330\020\025\220W\230A\230Q\330\020\027\220q\340\020\021\340\010\026\220b\230\005\230Q\230a\330\010\026\220c\230\027\240\001\240\025\240f\250A\340\010\013\210<\220s\230$\230a\330\014\031\230\024\230Y\240a\240q\330\r\031\230\023\230D\240\001\330\014\031\230\031\240!\330\r\032\230&\240\001\240\021\330\014\031\230\031\240!\340\014\031\230\031\240!\340\010\017\210u\220A\220\\\240\027\250\013\2601\200A\340\010\032\230#\230Q\230a\340\010\013\210:\220S\230\001\330\014\023\2206\230\021\360\006\000\t\014\2104\210q\220\013\2307\240!\330\014\023\2206\230\021\340\010\024\220D\230\001\230\032\240:\250R\250s\260&\270\001\340\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0346\260j\300\002\300!\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0346\260j\300\002\300!\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0343\260:\270R\270q\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\034,\250J\260b\270\001\330\010\013\2109\220K\230q\240\001\330\014\023\2209\320\0341\260\032\2702\270Q\340\010\017\210v\220Q\200A\340\010 \240\001\330\010 \240\003\2401\240A\360\022\000\t\022\220\021""\340\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\360\006\000\r\020\210u\220C\220t\2303\230e\2403\240a\330\020\027\220q\330\020\021\340\014\027\220~\240Q\240i\250r\260\023\260J\270b\300\005\300Q\360\006\000\r\020\210u\220C\220t\2303\230e\2403\240a\360\014\000\021\024\2204\220s\230!\330\024*\250!\340\024*\250!\330\024\030\230\t\240\025\240a\240q\330\030\033\2304\230q\240\007\240s\250$\250d\260$\260a\260w\270c\300\021\330\0342\260!\330\034\035\340\020\027\220y\240\017\250t\3203K\3101\330\024\032\230%\230z\250\021\340\020\023\2201\330\024(\250\t\260\022\2601\330\024\025\330\030\034\230F\240!\240=\260\t\270\022\2703\270a\270t\300=\320PQ\340\024)\250\021\340\024\027\220t\2304\230q\330\030\033\320\033+\2502\250S\260\001\260\024\260Q\330\034(\250\004\250F\260!\2601\330\034\035\330 #\2401\240K\250r\260\021\330 $\240I\250Q\250o\270S\300\001\340 5\260Q\340\030\031\330\034\035\330\034 \240\003\2401\240N\260\"\260A\330\034 \240\014\250A\250_\270C\270q\340\0341\260\021\340\030-\250\\\270\026\270q\330\030\031\330\034$\240C\240q\330\034 \320 0\260\002\260#\260Q\260d\270!\330\034 \240\003\2401\240D\250\006\250a\320/A\300\022\3001\330\034 \240\004\240F\250!\320+;\2701\270O\3103\310a\340\0341\260\021\340\024\027\220q\330\030\034\320\0345\260Q\330\030\034\320\0345\260^\3001\330\034%\240R\240s\250*\260B\260e\2701\340\030\033\2308\2402\240T\250\022\2501\330\034 \320 3\2607\270!\2704\270q\300\004\300B\300d\310!\330\030\037\230q\340\030\031\330\034 \240\001\240\024\240R\240t\250<\260x\270r\300\024\300R\300w\310a\340\030\047\240~\260Q\260i\270r\300\023\300J\310b\320PU\320UV\330\030\033\2304\230t\2401\330\034 \240\007\240w\250a\330 *\250!\330$%\330$%\330$)\250\022\2501\360\020\000\035!\240\t\250\027\260\001\330 !\330 \"\240!\2409\250B\250k\270\021\270*\300B\300a\360\010\000\031\037\230g\240Q\330\034!\240\021\240)\320+<\270O\3101\340\030\036\230a\330\030\031\340\024\027\220v\230W\240A\330\030\036\230g\240Q\240a\330\024\032\230!\330\024\025\360\006\000\r\020\210t\2208\2301\340\020 ""\240\001\330\020\026\220n\240B\240g\250T\260\024\260Q\260n\300H\310A\330\024%\240Q\360\026\000\021 \230q\330\020\023\220=\240\002\240\047\250\024\250T\260\021\260-\270v\300S\310\003\3101\330\024\034\230M\250\022\2501\330\024\027\220v\230R\230w\240d\250$\250a\250w\260d\270%\270q\330\030!\240\021\330\024#\2401\330\024\032\230&\240\002\240\047\250\024\250T\260\021\260&\270\010\300\001\330\030!\240\021\330\024\027\220v\230R\230q\330\030\047\240q\360\022\000\021\035\230A\330\020\033\2301\330\020\021\330\024\030\230\001\330\024\030\230\t\240\022\2401\330\024\030\230\004\230A\230Z\240s\250!\330\024\030\230\t\240\022\2402\240R\240q\330\024\030\230\004\230A\230Y\240b\250\002\250(\260!\340\024 \240\001\330\024\032\230)\2402\240W\250D\260\004\260A\260Y\270h\300a\330\030\033\2304\230q\240\t\250\030\260\021\330\034(\250\001\330\034\035\330\030$\240A\360\022\000\021\024\220:\230Q\330\024\"\240\"\240A\330\024\030\230\004\230A\230^\2508\2601\330\024\030\230\001\330\030\034\230A\230^\2506\260\023\260C\260q\330\030\031\340 .\250b\260\002\260\"\260A\330 $\240D\250\001\250\036\260r\270\022\2708\3001\340\034\035\330 .\250b\260\002\260\"\260A\330 $\240D\250\001\250\036\260r\270\023\270D\300\005\300Q\330 $\240D\250\001\250\036\260r\270\022\2708\3001\360\n\000\025\034\230:\240T\320)=\270Q\330\030\036\230e\240:\250Q\360\006\000\025\034\230:\240T\320)?\270q\330\030\036\230e\240:\250Q\340\020\026\220g\230Q\230a\330\020\026\220a\330\020\021\360\n\000\r\020\210t\2206\230\023\230C\230t\2401\330\020\033\2304\320\037?\270q\330\024\032\230%\230z\250\021\340\020\023\2209\230G\2401\330\024\033\230:\240Q\330\024\032\230\047\240\021\240!\330\024\032\230!\330\024\025\360\006\000\r\020\210t\2208\2303\230c\240\025\240c\250\021\330\020\027\220z\240\024\320%9\270\021\330\024\032\230%\230z\250\021\340\020\026\220g\230Q\230a\330\020\026\220a\330\020\021\360\n\000\r\020\210u\220C\220t\2304\230t\2402\240R\240r\250\027\260\004\260D\270\001\270\024\270R\270s\300#\300Q\330\020\026\220g\230Q\230e\2401\240I\250Z""\260t\2701\270G\3001\330\020\026\220a\330\020\021\360\006\000\r\020\210u\220C\220t\2301\360\010\000\021\022\330\024\031\230\023\230D\240\001\330\024\030\230\004\230B\230b\240\002\240!\330\024\030\230\004\230A\230T\240\022\2402\240X\250Q\330\024\025\330\030\035\230S\240\001\330\030\033\2304\230s\240!\330\030\033\2304\230q\240\004\240B\240c\250\023\250A\330\030\033\2304\230q\240\004\240B\240c\250\023\250A\360\006\000\025\034\230:\240T\320)?\270q\300\006\300e\310:\320UV\330\024\032\230\047\240\021\240!\330\024\032\230!\340\024\032\230\047\240\021\240%\240q\250\004\320,?\270q\300\007\300v\310Q\330\024\033\2301\330\020\021\360\006\000\r\020\210u\220C\220q\330\020\027\220q\330\020\021\360\n\000\r\020\210u\220C\220t\2301\330\020\026\220g\230Q\230e\2401\240I\250[\270\006\270a\330\020\027\220q\330\020\021\360\n\000\r\023\220\047\230\021\230%\230q\240\t\250\035\260f\270A\330\014\023\2201\340\010\017\210q\200A\360\014\000\t\032\230\024\230Q\230a\330\010\027\220z\240\022\2401\330\010\032\230#\230Q\230a\340\010\032\230!\340\010\023\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\340\010\016\210d\220\"\220A\330\014\021\220\024\220Q\220a\330\014\017\210s\220#\220Q\330\020\023\2204\220r\230\022\2302\230W\240D\250\004\250A\250T\260\022\2603\260c\270\021\340\024\031\230\027\240\001\240\021\330\024\033\2301\330\024\025\330\020\027\220q\330\020\021\330\024\031\230\021\330\030!\320!2\260\"\260E\270\021\270(\300*\310F\320RS\340\024\025\330\024\025\340\014\021\220\027\230\001\230\021\330\014\023\2201\360\006\000\t\020\210v\220U\230!\200A\360\014\000\t!\240\001\330\010 \240\003\2401\240A\330\010 \240\001\330\010!\240\021\360\006\000\t!\240\004\240A\340\010\023\220>\240\021\240)\2502\250S\260\n\270\"\270K\300q\340\010\016\210d\220\"\220A\330\014\023\2204\220q\230\001\330\014\017\210t\2208\2301\330\020\027\220q\340\020\025\220S\230\001\330\020\024\220D\230\001\330\020\024\220D\230\001\330\020\024\220D\230\002\230\"\230B\230a\330\020\024\220D\230\001\230\024\230R\230r\240\030\250\021\360""\014\000\021\037\230a\330\020\027\220q\330\022\027\220s\230$\230c\240\025\240c\250\025\250d\260$\260b\270\n\300$\300d\310!\330\020\037\230q\330\020\027\220q\330\020\023\2204\220r\230\027\240\005\240T\250\021\250%\250s\260$\260c\270\024\270Q\270e\3003\300a\330\024\033\2301\340\020\021\340\010\020\220\004\220A\220Z\230q\360\006\000\t\n\330\014\020\220\001\330\014\020\220\004\220A\330\014\020\320\020)\250\026\250q\260\001\330\014\020\220\002\220#\220S\230\001\230\032\2401\340\014\023\2205\230\001\230\031\240/\260\027\270\013\3001\340\010\013\210<\220t\230=\250\003\2501\340\014\r\330\020\025\220Q\330\024\035\230Q\330\024\031\230\030\240\021\240%\240q\330\024\025\330\024\025\340\020\021\340\010\017\210u\220A\220Y\320\0360\260\007\260{\300!\200A\360\024\000\t\037\230d\240!\330\010\032\230$\230a\340\010\037\230q\360\010\000\t\r\210J\220a\330\010\014\210J\220a\360\006\000\t\r\210L\230\001\360\010\000\t\n\330\014!\240\021\240$\240i\250z\270\037\310\001\360\006\000\t\023\220#\220Q\220a\330\010\014\210L\230\005\230Q\230a\330\014\023\2205\230\001\230\021\330\014\017\210q\330\020\023\2204\220y\240\001\240\021\330\024#\2404\240s\250!\340\024#\2401\330\020\023\320\023#\2404\240y\260\003\2601\330\024\035\230T\320!<\270A\330\030&\240j\260\003\260?\300!\3001\360\006\000\025\036\230T\320!7\260q\270\016\300j\320PQ\330\020\023\2201\330\024\036\230g\240Q\240a\330\024\036\230g\240Q\330\030\035\230Q\330\034%\240Q\330\034\035\330\034*\250!\2509\260B\260c\270\023\270A\270V\3002\300S\310\001\360\010\000\021\032\230\024\320\0356\260a\260v\270Q\330\020\023\2201\330\024\036\230g\240Q\240a\330\024\027\220v\230Q\230b\240\006\240g\250Y\260a\330\030\"\240\047\250\021\330\034!\240\021\330 )\250\021\330 !\330 .\250a\250y\270\002\270#\270S\300\001\300\026\300r\310\023\310A\360\010\000\t\023\220\047\230\021\330\014\021\220\021\220)\2306\240\024\240^\2601\260H\270B\270c\300\023\300A\360\016\000\t\r\210O\2301\330\010\017\210q";
11554
11554
  PyObject *data = NULL;
11555
11555
  #define __Pyx_DecompressString_UNUSED
11556
11556
  #define __Pyx_DecompressString_LZSS_UNUSED
@@ -11560,7 +11560,7 @@ static const char bytes[] = "\t\n \"&\047*,, column -.: closed at end of line in
11560
11560
  for (int i = 0; i < 176; i++) {
11561
11561
  Py_ssize_t bytes_length = str_length_index[i].length;
11562
11562
  PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);
11563
- if (likely(string) && i >= 26) PyUnicode_InternInPlace(&string);
11563
+ if (likely(string) && i >= 25) PyUnicode_InternInPlace(&string);
11564
11564
  if (unlikely(!string)) {
11565
11565
  Py_XDECREF(data);
11566
11566
  __PYX_ERR(0, 1, __pyx_L1_error)