localizable_model 0.6.7 → 0.6.8

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 (2563) hide show
  1. checksums.yaml +4 -4
  2. data/lib/localizable_model/active_record_extension.rb +3 -2
  3. data/lib/localizable_model/localizer.rb +7 -5
  4. data/lib/localizable_model/version.rb +1 -1
  5. data/vendor/bundle/ruby/4.0.0/cache/action_text-trix-2.1.19.gem +0 -0
  6. data/vendor/bundle/ruby/4.0.0/cache/concurrent-ruby-1.3.7.gem +0 -0
  7. data/vendor/bundle/ruby/4.0.0/cache/factory_bot-6.6.0.gem +0 -0
  8. data/vendor/bundle/ruby/4.0.0/cache/i18n-1.15.2.gem +0 -0
  9. data/vendor/bundle/ruby/4.0.0/cache/json-2.19.9.gem +0 -0
  10. data/vendor/bundle/ruby/4.0.0/cache/marcel-1.2.1.gem +0 -0
  11. data/vendor/bundle/ruby/4.0.0/cache/minitest-6.0.6.gem +0 -0
  12. data/vendor/bundle/ruby/4.0.0/cache/net-imap-0.6.4.1.gem +0 -0
  13. data/vendor/bundle/ruby/4.0.0/cache/nokogiri-1.19.4-x86_64-linux-gnu.gem +0 -0
  14. data/vendor/bundle/ruby/4.0.0/cache/pp-0.6.4.gem +0 -0
  15. data/vendor/bundle/ruby/4.0.0/cache/psych-5.4.0.gem +0 -0
  16. data/vendor/bundle/ruby/4.0.0/cache/rubocop-1.88.0.gem +0 -0
  17. data/vendor/bundle/ruby/4.0.0/cache/rubocop-rails-2.35.5.gem +0 -0
  18. data/vendor/bundle/ruby/4.0.0/cache/rubocop-rspec-3.10.2.gem +0 -0
  19. data/vendor/bundle/ruby/4.0.0/cache/shoulda-matchers-8.0.1.gem +0 -0
  20. data/vendor/bundle/ruby/4.0.0/cache/websocket-driver-0.8.1.gem +0 -0
  21. data/vendor/bundle/ruby/4.0.0/cache/zeitwerk-2.8.2.gem +0 -0
  22. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.9/gem_make.out +26 -0
  23. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.9/json/ext/generator.so +0 -0
  24. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.9/json/ext/parser.so +0 -0
  25. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/psych-5.4.0/gem_make.out +29 -0
  26. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/psych-5.4.0/psych.so +0 -0
  27. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/websocket-driver-0.8.1/gem_make.out +26 -0
  28. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/websocket-driver-0.8.1/websocket_mask.so +0 -0
  29. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.19/app/assets/javascripts/trix.js +14001 -0
  30. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.19/lib/action_text/trix/version.rb +3 -0
  31. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/CHANGELOG.md +615 -0
  32. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/Rakefile +343 -0
  33. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +140 -0
  34. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb +142 -0
  35. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb +268 -0
  36. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb +386 -0
  37. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb +66 -0
  38. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb +36 -0
  39. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
  40. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/version.rb +3 -0
  41. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/GETTING_STARTED.md +2203 -0
  42. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/NEWS.md +607 -0
  43. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/README.md +99 -0
  44. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/lib/factory_bot/definition_proxy.rb +269 -0
  45. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/lib/factory_bot/factory_runner.rb +35 -0
  46. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/lib/factory_bot/linter.rb +121 -0
  47. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.6.0/lib/factory_bot/version.rb +3 -0
  48. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/README.md +139 -0
  49. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/backend/fallbacks.rb +127 -0
  50. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/backend/simple.rb +113 -0
  51. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/backend/transliterator.rb +109 -0
  52. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/config.rb +199 -0
  53. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/middleware.rb +21 -0
  54. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n/version.rb +5 -0
  55. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.15.2/lib/i18n.rb +507 -0
  56. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/CHANGES.md +788 -0
  57. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/README.md +310 -0
  58. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/ext/json/ext/fbuffer/fbuffer.h +259 -0
  59. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/ext/json/ext/generator/generator.c +1993 -0
  60. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/ext/json/ext/parser/parser.c +1757 -0
  61. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/lib/json/ext/generator.so +0 -0
  62. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/lib/json/ext/parser.so +0 -0
  63. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/lib/json/truffle_ruby/generator.rb +755 -0
  64. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.9/lib/json/version.rb +5 -0
  65. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.2.1/lib/marcel/magic.rb +156 -0
  66. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.2.1/lib/marcel/mime_type/definitions.rb +95 -0
  67. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.2.1/lib/marcel/tables.rb +2958 -0
  68. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.2.1/lib/marcel/version.rb +5 -0
  69. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.6/History.rdoc +1860 -0
  70. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.6/lib/minitest/assertions.rb +821 -0
  71. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.6/lib/minitest.rb +1232 -0
  72. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap/command_data.rb +450 -0
  73. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap/config.rb +674 -0
  74. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap/data_encoding.rb +314 -0
  75. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap/response_parser.rb +2297 -0
  76. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap/response_reader.rb +87 -0
  77. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4.1/lib/net/imap.rb +4004 -0
  78. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/nokogiri.c +297 -0
  79. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/nokogiri.h +247 -0
  80. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xml_attr.c +108 -0
  81. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xml_document.c +796 -0
  82. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xml_node.c +2523 -0
  83. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xml_node_set.c +518 -0
  84. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xml_xpath_context.c +496 -0
  85. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/ext/nokogiri/xslt_stylesheet.c +457 -0
  86. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/3.2/nokogiri.so +0 -0
  87. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/3.3/nokogiri.so +0 -0
  88. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/3.4/nokogiri.so +0 -0
  89. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/4.0/nokogiri.so +0 -0
  90. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/css/tokenizer.rb +155 -0
  91. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/css/tokenizer.rex +57 -0
  92. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/version/constant.rb +6 -0
  93. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/version/info.rb +234 -0
  94. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xml/document.rb +515 -0
  95. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xml/node.rb +1701 -0
  96. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xml/parse_options.rb +217 -0
  97. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xml/sax/document.rb +258 -0
  98. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xslt/stylesheet.rb +54 -0
  99. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.4-x86_64-linux-gnu/lib/nokogiri/xslt.rb +138 -0
  100. data/vendor/bundle/ruby/4.0.0/gems/pp-0.6.4/lib/pp.rb +738 -0
  101. data/vendor/bundle/ruby/4.0.0/gems/psych-5.4.0/README.md +90 -0
  102. data/vendor/bundle/ruby/4.0.0/gems/psych-5.4.0/ext/psych/psych_parser.c +575 -0
  103. data/vendor/bundle/ruby/4.0.0/gems/psych-5.4.0/lib/psych/versions.rb +10 -0
  104. data/vendor/bundle/ruby/4.0.0/gems/psych-5.4.0/lib/psych.so +0 -0
  105. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/config/default.yml +6240 -0
  106. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/config/obsoletion.yml +272 -0
  107. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cli/command/auto_generate_config.rb +199 -0
  108. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cli/command/list_enabled_cops_for.rb +40 -0
  109. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cli/command/show_docs_url.rb +44 -0
  110. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cli/command/suggest_extensions.rb +132 -0
  111. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cli.rb +249 -0
  112. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/comment_config.rb +258 -0
  113. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/config_loader.rb +284 -0
  114. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/config_loader_resolver.rb +322 -0
  115. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/config_store.rb +77 -0
  116. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/autocorrect_logic.rb +164 -0
  117. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/base.rb +568 -0
  118. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/bundler/gem_comment.rb +171 -0
  119. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +109 -0
  120. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/correctors/parentheses_corrector.rb +120 -0
  121. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/correctors.rb +28 -0
  122. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/exclude_limit.rb +52 -0
  123. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/gemspec/duplicated_assignment.rb +111 -0
  124. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/gemspec/require_mfa.rb +159 -0
  125. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +55 -0
  126. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +62 -0
  127. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +75 -0
  128. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/begin_end_alignment.rb +73 -0
  129. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/block_alignment.rb +296 -0
  130. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/class_structure.rb +388 -0
  131. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +233 -0
  132. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/end_alignment.rb +217 -0
  133. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/indentation_width.rb +505 -0
  134. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +132 -0
  135. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +453 -0
  136. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/redundant_line_break.rb +136 -0
  137. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/layout/space_before_brackets.rb +40 -0
  138. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/ambiguous_assignment.rb +44 -0
  139. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/ambiguous_block_association.rb +105 -0
  140. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +102 -0
  141. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/circular_argument_reference.rb +104 -0
  142. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +52 -0
  143. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/constant_reassignment.rb +230 -0
  144. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/constant_resolution.rb +93 -0
  145. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/debugger.rb +143 -0
  146. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/deprecated_constants.rb +82 -0
  147. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/empty_block.rb +94 -0
  148. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/ensure_return.rb +69 -0
  149. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/erb_new_arguments.rb +164 -0
  150. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/float_comparison.rb +137 -0
  151. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +85 -0
  152. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/interpolation_check.rb +84 -0
  153. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/lambda_without_literal_block.rb +51 -0
  154. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +95 -0
  155. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/literal_in_interpolation.rb +207 -0
  156. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +120 -0
  157. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/multiple_comparison.rb +48 -0
  158. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +73 -0
  159. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/non_deterministic_require_order.rb +185 -0
  160. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +86 -0
  161. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/number_conversion.rb +209 -0
  162. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +46 -0
  163. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +97 -0
  164. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/ordered_magic_comments.rb +81 -0
  165. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +77 -0
  166. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/raise_exception.rb +110 -0
  167. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/rand_one.rb +42 -0
  168. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +347 -0
  169. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +129 -0
  170. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +73 -0
  171. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_safe_navigation.rb +283 -0
  172. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_splat_expansion.rb +220 -0
  173. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_type_conversion.rb +268 -0
  174. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_with_index.rb +87 -0
  175. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/redundant_with_object.rb +87 -0
  176. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/refinement_import_methods.rb +59 -0
  177. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/regexp_as_condition.rb +44 -0
  178. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/require_parentheses.rb +71 -0
  179. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/require_range_parentheses.rb +58 -0
  180. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/require_relative_self_path.rb +52 -0
  181. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/rescue_type.rb +82 -0
  182. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/safe_navigation_chain.rb +134 -0
  183. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +46 -0
  184. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/script_permission.rb +77 -0
  185. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/self_assignment.rb +171 -0
  186. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/send_with_mixin_argument.rb +83 -0
  187. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/shadowed_exception.rb +165 -0
  188. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +130 -0
  189. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/shared_mutable_default.rb +78 -0
  190. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +123 -0
  191. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/symbol_conversion.rb +201 -0
  192. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/to_enum_arguments.rb +126 -0
  193. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/top_level_return_with_argument.rb +48 -0
  194. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +59 -0
  195. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +90 -0
  196. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/unreachable_code.rb +146 -0
  197. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/useless_assignment.rb +242 -0
  198. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +131 -0
  199. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/useless_setter_call.rb +161 -0
  200. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/useless_times.rb +135 -0
  201. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +147 -0
  202. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/metrics/block_length.rb +88 -0
  203. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/metrics/collection_literal_length.rb +83 -0
  204. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/metrics/method_length.rb +80 -0
  205. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/metrics/utils/iterating_block.rb +61 -0
  206. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/mixin/configurable_max.rb +29 -0
  207. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/mixin/project_index_help.rb +48 -0
  208. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/mixin.rb +86 -0
  209. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +53 -0
  210. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +294 -0
  211. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/naming/predicate_method.rb +330 -0
  212. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/naming/predicate_prefix.rb +204 -0
  213. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +172 -0
  214. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/offense.rb +254 -0
  215. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/registry.rb +342 -0
  216. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/security/io_methods.rb +49 -0
  217. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/alias.rb +170 -0
  218. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/and_or.rb +159 -0
  219. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/array_first_last.rb +91 -0
  220. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/array_intersect.rb +199 -0
  221. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/array_intersect_with_single_element.rb +50 -0
  222. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/block_delimiters.rb +510 -0
  223. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/case_equality.rb +122 -0
  224. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/character_literal.rb +57 -0
  225. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/class_and_module_children.rb +244 -0
  226. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/class_equality_comparison.rb +142 -0
  227. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/class_methods_definitions.rb +164 -0
  228. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/colon_method_call.rb +55 -0
  229. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/combinable_loops.rb +136 -0
  230. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/comparable_clamp.rb +136 -0
  231. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/concat_array_literals.rb +101 -0
  232. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/conditional_assignment.rb +671 -0
  233. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/constant_visibility.rb +105 -0
  234. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/copyright.rb +120 -0
  235. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/date_time.rb +94 -0
  236. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/dig_chain.rb +94 -0
  237. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +87 -0
  238. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +174 -0
  239. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/fetch_env_var.rb +159 -0
  240. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/file_write.rb +138 -0
  241. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/format_string.rb +155 -0
  242. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/hash_conversion.rb +151 -0
  243. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/hash_lookup_method.rb +106 -0
  244. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/hash_slice.rb +96 -0
  245. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/if_inside_else.rb +161 -0
  246. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/if_unless_modifier.rb +362 -0
  247. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/magic_comment_format.rb +307 -0
  248. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/min_max_comparison.rb +91 -0
  249. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/module_member_existence_check.rb +110 -0
  250. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/mutable_constant.rb +340 -0
  251. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/parallel_assignment.rb +313 -0
  252. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/reduce_to_hash.rb +200 -0
  253. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/redundant_array_constructor.rb +77 -0
  254. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/redundant_constant_base.rb +85 -0
  255. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/redundant_format.rb +284 -0
  256. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/redundant_regexp_constructor.rb +46 -0
  257. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/redundant_self.rb +215 -0
  258. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/regexp_literal.rb +260 -0
  259. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/rescue_modifier.rb +112 -0
  260. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/self_assignment.rb +95 -0
  261. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/semicolon.rb +205 -0
  262. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/sole_nested_conditional.rb +246 -0
  263. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/struct_inheritance.rb +92 -0
  264. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/symbol_proc.rb +283 -0
  265. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/top_level_method_definition.rb +86 -0
  266. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/unless_logical_operators.rb +106 -0
  267. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/while_until_do.rb +54 -0
  268. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/while_until_modifier.rb +67 -0
  269. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/word_array.rb +156 -0
  270. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/yoda_condition.rb +185 -0
  271. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/style/zero_length_predicate.rb +157 -0
  272. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/cop/team.rb +341 -0
  273. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/file_patterns.rb +51 -0
  274. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/formatter/disabled_config_formatter.rb +307 -0
  275. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/lsp/runtime.rb +78 -0
  276. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/options.rb +693 -0
  277. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/project_index_loader.rb +66 -0
  278. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/rspec/shared_contexts.rb +305 -0
  279. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/runner.rb +600 -0
  280. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/server/core.rb +124 -0
  281. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/target_finder.rb +228 -0
  282. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop/version.rb +178 -0
  283. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.88.0/lib/rubocop.rb +756 -0
  284. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/config/default.yml +1349 -0
  285. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/mixin/database_type_resolvable.rb +66 -0
  286. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/mixin/target_rails_version.rb +31 -0
  287. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/action_filter.rb +110 -0
  288. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/env.rb +70 -0
  289. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/i18n_locale_texts.rb +136 -0
  290. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/not_null_column.rb +167 -0
  291. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/presence.rb +208 -0
  292. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/rake_environment.rb +128 -0
  293. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/redundant_active_record_all_method.rb +190 -0
  294. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/response_parsed_body.rb +108 -0
  295. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/save_bang.rb +359 -0
  296. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/select_map.rb +101 -0
  297. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/strong_parameters_expect.rb +214 -0
  298. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/cop/rails/unknown_env.rb +125 -0
  299. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.35.5/lib/rubocop/rails/version.rb +14 -0
  300. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/CHANGELOG.md +1136 -0
  301. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/config/default.yml +1067 -0
  302. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/around_block.rb +117 -0
  303. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/contain_exactly.rb +43 -0
  304. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/context_method.rb +57 -0
  305. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/context_wording.rb +128 -0
  306. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/described_class.rb +246 -0
  307. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/discarded_matcher.rb +113 -0
  308. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_example_group.rb +190 -0
  309. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_hook.rb +49 -0
  310. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_line_after_example.rb +82 -0
  311. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +42 -0
  312. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +45 -0
  313. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_line_after_hook.rb +83 -0
  314. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/empty_line_after_subject.rb +36 -0
  315. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/example_length.rb +76 -0
  316. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/example_without_description.rb +98 -0
  317. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/example_wording.rb +168 -0
  318. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/expect_actual.rb +125 -0
  319. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/expect_change.rb +135 -0
  320. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/expect_in_hook.rb +51 -0
  321. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/expect_in_let.rb +42 -0
  322. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/hook_argument.rb +135 -0
  323. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/hooks_before_examples.rb +82 -0
  324. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/indexed_let.rb +115 -0
  325. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/instance_spy.rb +74 -0
  326. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/iterated_expectation.rb +109 -0
  327. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/leading_subject.rb +86 -0
  328. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/let_before_examples.rb +101 -0
  329. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/let_setup.rb +104 -0
  330. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/match_with_simple_regex.rb +92 -0
  331. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/missing_example_group_argument.rb +35 -0
  332. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/mixin/inside_example.rb +16 -0
  333. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/mixin/metadata.rb +61 -0
  334. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/mixin/repeated_items.rb +36 -0
  335. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/multiple_expectations.rb +149 -0
  336. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +147 -0
  337. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/multiple_subjects.rb +97 -0
  338. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/named_subject.rb +156 -0
  339. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/no_expectation_example.rb +103 -0
  340. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/overwriting_setup.rb +74 -0
  341. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/predicate_matcher.rb +349 -0
  342. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/redundant_around.rb +66 -0
  343. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/repeated_description.rb +98 -0
  344. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/repeated_example.rb +74 -0
  345. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/repeated_example_group_body.rb +96 -0
  346. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/repeated_example_group_description.rb +92 -0
  347. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/repeated_include_example.rb +102 -0
  348. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/return_from_stub.rb +170 -0
  349. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/scattered_let.rb +65 -0
  350. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/scattered_setup.rb +108 -0
  351. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/shared_context.rb +147 -0
  352. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/skip_block_inside_example.rb +43 -0
  353. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/spec_file_path_format.rb +191 -0
  354. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/subject_declaration.rb +62 -0
  355. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/undescriptive_literals_description.rb +69 -0
  356. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/void_expect.rb +63 -0
  357. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec/yield.rb +82 -0
  358. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/cop/rspec_cops.rb +117 -0
  359. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/rspec/description_extractor.rb +77 -0
  360. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop/rspec/version.rb +10 -0
  361. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.10.2/lib/rubocop-rspec.rb +53 -0
  362. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/README.md +567 -0
  363. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +145 -0
  364. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/allow_value_matcher.rb +695 -0
  365. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/helpers.rb +37 -0
  366. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_absence_of_matcher.rb +180 -0
  367. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_acceptance_of_matcher.rb +128 -0
  368. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_comparison_of_matcher.rb +567 -0
  369. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +185 -0
  370. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_exclusion_of_matcher.rb +272 -0
  371. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_inclusion_of_matcher.rb +664 -0
  372. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_length_of_matcher.rb +575 -0
  373. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +711 -0
  374. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validate_presence_of_matcher.rb +428 -0
  375. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validation_matcher.rb +195 -0
  376. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_model/validator.rb +127 -0
  377. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/association_matcher.rb +2134 -0
  378. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/association_matchers/optional_matcher.rb +71 -0
  379. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/association_matchers/required_matcher.rb +76 -0
  380. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/define_enum_for_matcher.rb +784 -0
  381. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/have_attached_matcher.rb +343 -0
  382. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +95 -0
  383. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/uniqueness/namespace.rb +39 -0
  384. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/uniqueness/test_models.rb +55 -0
  385. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb +1197 -0
  386. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/matcher_collection.rb +99 -0
  387. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/rails_shim.rb +190 -0
  388. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers/version.rb +6 -0
  389. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/lib/shoulda/matchers.rb +25 -0
  390. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-8.0.1/shoulda-matchers.gemspec +43 -0
  391. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/CHANGELOG.md +177 -0
  392. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/LICENSE.md +12 -0
  393. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/lib/websocket/driver/draft75.rb +103 -0
  394. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/lib/websocket/driver/hybi.rb +430 -0
  395. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/lib/websocket/http/headers.rb +115 -0
  396. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.1/lib/websocket_mask.so +0 -0
  397. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/README.md +1531 -0
  398. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/core_ext/kernel.rb +64 -0
  399. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/cref/map.rb +159 -0
  400. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/cref.rb +76 -0
  401. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/error.rb +34 -0
  402. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/gem_inflector.rb +17 -0
  403. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/gem_loader.rb +68 -0
  404. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/inflector.rb +46 -0
  405. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/callbacks.rb +96 -0
  406. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/config.rb +420 -0
  407. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/constant_path_validator.rb +17 -0
  408. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/eager_load.rb +226 -0
  409. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/file_system.rb +212 -0
  410. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader/helpers.rb +43 -0
  411. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/loader.rb +683 -0
  412. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/registry/loaders.rb +33 -0
  413. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/registry.rb +89 -0
  414. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk/version.rb +6 -0
  415. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.8.2/lib/zeitwerk.rb +29 -0
  416. data/vendor/bundle/ruby/4.0.0/specifications/action_text-trix-2.1.19.gemspec +23 -0
  417. data/vendor/bundle/ruby/4.0.0/specifications/concurrent-ruby-1.3.7.gemspec +24 -0
  418. data/vendor/bundle/ruby/4.0.0/specifications/factory_bot-6.6.0.gemspec +37 -0
  419. data/vendor/bundle/ruby/4.0.0/specifications/i18n-1.15.2.gemspec +26 -0
  420. data/vendor/bundle/ruby/4.0.0/specifications/json-2.19.9.gemspec +0 -0
  421. data/vendor/bundle/ruby/4.0.0/specifications/marcel-1.2.1.gemspec +29 -0
  422. data/vendor/bundle/ruby/4.0.0/specifications/minitest-6.0.6.gemspec +35 -0
  423. data/vendor/bundle/ruby/4.0.0/specifications/net-imap-0.6.4.1.gemspec +28 -0
  424. data/vendor/bundle/ruby/4.0.0/specifications/nokogiri-1.19.4-x86_64-linux-gnu.gemspec +31 -0
  425. data/vendor/bundle/ruby/4.0.0/specifications/pp-0.6.4.gemspec +27 -0
  426. data/vendor/bundle/ruby/4.0.0/specifications/psych-5.4.0.gemspec +32 -0
  427. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-1.88.0.gemspec +39 -0
  428. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-rails-2.35.5.gemspec +32 -0
  429. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-rspec-3.10.2.gemspec +30 -0
  430. data/vendor/bundle/ruby/4.0.0/specifications/shoulda-matchers-8.0.1.gemspec +27 -0
  431. data/vendor/bundle/ruby/4.0.0/specifications/websocket-driver-0.8.1.gemspec +34 -0
  432. data/vendor/bundle/ruby/4.0.0/specifications/zeitwerk-2.8.2.gemspec +22 -0
  433. metadata +2142 -2131
  434. data/vendor/bundle/ruby/4.0.0/cache/action_text-trix-2.1.18.gem +0 -0
  435. data/vendor/bundle/ruby/4.0.0/cache/concurrent-ruby-1.3.6.gem +0 -0
  436. data/vendor/bundle/ruby/4.0.0/cache/factory_bot-6.5.6.gem +0 -0
  437. data/vendor/bundle/ruby/4.0.0/cache/i18n-1.14.8.gem +0 -0
  438. data/vendor/bundle/ruby/4.0.0/cache/json-2.19.4.gem +0 -0
  439. data/vendor/bundle/ruby/4.0.0/cache/marcel-1.1.0.gem +0 -0
  440. data/vendor/bundle/ruby/4.0.0/cache/minitest-6.0.5.gem +0 -0
  441. data/vendor/bundle/ruby/4.0.0/cache/net-imap-0.6.4.gem +0 -0
  442. data/vendor/bundle/ruby/4.0.0/cache/nokogiri-1.19.2-x86_64-linux-gnu.gem +0 -0
  443. data/vendor/bundle/ruby/4.0.0/cache/pp-0.6.3.gem +0 -0
  444. data/vendor/bundle/ruby/4.0.0/cache/psych-5.3.1.gem +0 -0
  445. data/vendor/bundle/ruby/4.0.0/cache/rubocop-1.86.1.gem +0 -0
  446. data/vendor/bundle/ruby/4.0.0/cache/rubocop-rails-2.34.3.gem +0 -0
  447. data/vendor/bundle/ruby/4.0.0/cache/rubocop-rspec-3.9.0.gem +0 -0
  448. data/vendor/bundle/ruby/4.0.0/cache/shoulda-matchers-7.0.1.gem +0 -0
  449. data/vendor/bundle/ruby/4.0.0/cache/websocket-driver-0.8.0.gem +0 -0
  450. data/vendor/bundle/ruby/4.0.0/cache/zeitwerk-2.7.5.gem +0 -0
  451. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.4/gem_make.out +0 -26
  452. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.4/json/ext/generator.so +0 -0
  453. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.4/json/ext/parser.so +0 -0
  454. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/psych-5.3.1/gem_make.out +0 -29
  455. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/psych-5.3.1/psych.so +0 -0
  456. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/websocket-driver-0.8.0/gem_make.out +0 -26
  457. data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/websocket-driver-0.8.0/websocket_mask.so +0 -0
  458. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.18/app/assets/javascripts/trix.js +0 -13886
  459. data/vendor/bundle/ruby/4.0.0/gems/action_text-trix-2.1.18/lib/action_text/trix/version.rb +0 -3
  460. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/CHANGELOG.md +0 -609
  461. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/Rakefile +0 -344
  462. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/ext/concurrent-ruby/com/concurrent_ruby/ext/AtomicReferenceLibrary.java +0 -175
  463. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb +0 -135
  464. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb +0 -255
  465. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb +0 -379
  466. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb +0 -67
  467. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb +0 -28
  468. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
  469. data/vendor/bundle/ruby/4.0.0/gems/concurrent-ruby-1.3.6/lib/concurrent-ruby/concurrent/version.rb +0 -3
  470. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/GETTING_STARTED.md +0 -2183
  471. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/NEWS.md +0 -593
  472. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/README.md +0 -101
  473. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/lib/factory_bot/definition_proxy.rb +0 -269
  474. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/lib/factory_bot/factory_runner.rb +0 -33
  475. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/lib/factory_bot/linter.rb +0 -121
  476. data/vendor/bundle/ruby/4.0.0/gems/factory_bot-6.5.6/lib/factory_bot/version.rb +0 -3
  477. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/README.md +0 -127
  478. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/backend/fallbacks.rb +0 -119
  479. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/backend/simple.rb +0 -113
  480. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/backend/transliterator.rb +0 -108
  481. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/config.rb +0 -165
  482. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/middleware.rb +0 -17
  483. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n/version.rb +0 -5
  484. data/vendor/bundle/ruby/4.0.0/gems/i18n-1.14.8/lib/i18n.rb +0 -478
  485. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/CHANGES.md +0 -762
  486. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/README.md +0 -299
  487. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/ext/json/ext/fbuffer/fbuffer.h +0 -251
  488. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/ext/json/ext/generator/generator.c +0 -1978
  489. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/ext/json/ext/parser/parser.c +0 -1709
  490. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/lib/json/ext/generator.so +0 -0
  491. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/lib/json/ext/parser.so +0 -0
  492. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/lib/json/truffle_ruby/generator.rb +0 -752
  493. data/vendor/bundle/ruby/4.0.0/gems/json-2.19.4/lib/json/version.rb +0 -5
  494. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.1.0/lib/marcel/magic.rb +0 -148
  495. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.1.0/lib/marcel/mime_type/definitions.rb +0 -72
  496. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.1.0/lib/marcel/tables.rb +0 -2962
  497. data/vendor/bundle/ruby/4.0.0/gems/marcel-1.1.0/lib/marcel/version.rb +0 -5
  498. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.5/History.rdoc +0 -1846
  499. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.5/lib/minitest/assertions.rb +0 -826
  500. data/vendor/bundle/ruby/4.0.0/gems/minitest-6.0.5/lib/minitest.rb +0 -1232
  501. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap/command_data.rb +0 -410
  502. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap/config.rb +0 -674
  503. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap/data_encoding.rb +0 -313
  504. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap/response_parser.rb +0 -2297
  505. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap/response_reader.rb +0 -82
  506. data/vendor/bundle/ruby/4.0.0/gems/net-imap-0.6.4/lib/net/imap.rb +0 -3976
  507. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/nokogiri.c +0 -294
  508. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/nokogiri.h +0 -238
  509. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xml_attr.c +0 -103
  510. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xml_document.c +0 -788
  511. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xml_node.c +0 -2459
  512. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xml_node_set.c +0 -518
  513. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xml_xpath_context.c +0 -486
  514. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/ext/nokogiri/xslt_stylesheet.c +0 -421
  515. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/3.2/nokogiri.so +0 -0
  516. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/3.3/nokogiri.so +0 -0
  517. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/3.4/nokogiri.so +0 -0
  518. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/4.0/nokogiri.so +0 -0
  519. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/css/tokenizer.rb +0 -155
  520. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/css/tokenizer.rex +0 -57
  521. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/version/constant.rb +0 -6
  522. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/version/info.rb +0 -224
  523. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xml/document.rb +0 -514
  524. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xml/node.rb +0 -1650
  525. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xml/parse_options.rb +0 -213
  526. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xml/sax/document.rb +0 -258
  527. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xslt/stylesheet.rb +0 -49
  528. data/vendor/bundle/ruby/4.0.0/gems/nokogiri-1.19.2-x86_64-linux-gnu/lib/nokogiri/xslt.rb +0 -129
  529. data/vendor/bundle/ruby/4.0.0/gems/pp-0.6.3/lib/pp.rb +0 -738
  530. data/vendor/bundle/ruby/4.0.0/gems/psych-5.3.1/README.md +0 -90
  531. data/vendor/bundle/ruby/4.0.0/gems/psych-5.3.1/ext/psych/psych_parser.c +0 -564
  532. data/vendor/bundle/ruby/4.0.0/gems/psych-5.3.1/lib/psych/versions.rb +0 -10
  533. data/vendor/bundle/ruby/4.0.0/gems/psych-5.3.1/lib/psych.so +0 -0
  534. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/config/default.yml +0 -6222
  535. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/config/obsoletion.yml +0 -252
  536. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cli/command/auto_generate_config.rb +0 -167
  537. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cli/command/show_docs_url.rb +0 -48
  538. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cli/command/suggest_extensions.rb +0 -132
  539. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cli.rb +0 -250
  540. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/comment_config.rb +0 -261
  541. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/config_loader.rb +0 -269
  542. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/config_loader_resolver.rb +0 -314
  543. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/config_store.rb +0 -77
  544. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/autocorrect_logic.rb +0 -163
  545. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/base.rb +0 -547
  546. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/bundler/gem_comment.rb +0 -171
  547. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +0 -113
  548. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/correctors/parentheses_corrector.rb +0 -89
  549. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/exclude_limit.rb +0 -26
  550. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/gemspec/duplicated_assignment.rb +0 -111
  551. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/gemspec/require_mfa.rb +0 -159
  552. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +0 -55
  553. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +0 -61
  554. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +0 -73
  555. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/begin_end_alignment.rb +0 -73
  556. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/block_alignment.rb +0 -259
  557. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/class_structure.rb +0 -388
  558. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +0 -224
  559. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/end_alignment.rb +0 -217
  560. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/indentation_width.rb +0 -493
  561. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +0 -132
  562. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +0 -428
  563. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/redundant_line_break.rb +0 -134
  564. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/layout/space_before_brackets.rb +0 -40
  565. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/ambiguous_assignment.rb +0 -54
  566. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/ambiguous_block_association.rb +0 -105
  567. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +0 -111
  568. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/circular_argument_reference.rb +0 -106
  569. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +0 -52
  570. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/constant_reassignment.rb +0 -198
  571. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/constant_resolution.rb +0 -93
  572. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/debugger.rb +0 -144
  573. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/deprecated_constants.rb +0 -88
  574. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/empty_block.rb +0 -94
  575. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/ensure_return.rb +0 -51
  576. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/erb_new_arguments.rb +0 -162
  577. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/float_comparison.rb +0 -136
  578. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +0 -81
  579. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/interpolation_check.rb +0 -69
  580. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/lambda_without_literal_block.rb +0 -51
  581. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +0 -85
  582. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/literal_in_interpolation.rb +0 -210
  583. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +0 -120
  584. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/multiple_comparison.rb +0 -48
  585. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +0 -57
  586. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/non_deterministic_require_order.rb +0 -185
  587. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +0 -86
  588. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/number_conversion.rb +0 -200
  589. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +0 -46
  590. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +0 -94
  591. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/ordered_magic_comments.rb +0 -81
  592. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +0 -87
  593. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/raise_exception.rb +0 -110
  594. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/rand_one.rb +0 -42
  595. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +0 -344
  596. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +0 -126
  597. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_dir_glob_sort.rb +0 -62
  598. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_safe_navigation.rb +0 -276
  599. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_splat_expansion.rb +0 -216
  600. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_type_conversion.rb +0 -261
  601. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_with_index.rb +0 -87
  602. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/redundant_with_object.rb +0 -82
  603. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/refinement_import_methods.rb +0 -52
  604. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/regexp_as_condition.rb +0 -36
  605. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/require_parentheses.rb +0 -62
  606. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/require_range_parentheses.rb +0 -57
  607. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/require_relative_self_path.rb +0 -50
  608. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/rescue_type.rb +0 -82
  609. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/safe_navigation_chain.rb +0 -133
  610. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +0 -46
  611. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/script_permission.rb +0 -73
  612. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/self_assignment.rb +0 -148
  613. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/send_with_mixin_argument.rb +0 -83
  614. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/shadowed_exception.rb +0 -165
  615. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +0 -116
  616. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/shared_mutable_default.rb +0 -76
  617. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/suppressed_exception_in_number_conversion.rb +0 -111
  618. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/symbol_conversion.rb +0 -184
  619. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/to_enum_arguments.rb +0 -99
  620. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/top_level_return_with_argument.rb +0 -48
  621. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +0 -56
  622. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb +0 -88
  623. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/unreachable_code.rb +0 -146
  624. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/useless_assignment.rb +0 -242
  625. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +0 -127
  626. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/useless_setter_call.rb +0 -158
  627. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/useless_times.rb +0 -114
  628. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +0 -136
  629. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/metrics/block_length.rb +0 -88
  630. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/metrics/collection_literal_length.rb +0 -83
  631. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/metrics/method_length.rb +0 -80
  632. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/metrics/utils/iterating_block.rb +0 -61
  633. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/mixin/configurable_max.rb +0 -28
  634. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +0 -53
  635. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +0 -294
  636. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/naming/predicate_method.rb +0 -330
  637. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/naming/predicate_prefix.rb +0 -204
  638. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +0 -172
  639. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/offense.rb +0 -246
  640. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/registry.rb +0 -325
  641. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/security/io_methods.rb +0 -49
  642. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/alias.rb +0 -161
  643. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/and_or.rb +0 -159
  644. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/array_first_last.rb +0 -80
  645. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/array_intersect.rb +0 -195
  646. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/array_intersect_with_single_element.rb +0 -47
  647. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/block_delimiters.rb +0 -496
  648. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/case_equality.rb +0 -110
  649. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/character_literal.rb +0 -57
  650. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/class_and_module_children.rb +0 -236
  651. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/class_equality_comparison.rb +0 -134
  652. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/class_methods_definitions.rb +0 -158
  653. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/colon_method_call.rb +0 -48
  654. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/combinable_loops.rb +0 -131
  655. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/comparable_clamp.rb +0 -125
  656. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/concat_array_literals.rb +0 -97
  657. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/conditional_assignment.rb +0 -666
  658. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/constant_visibility.rb +0 -102
  659. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/copyright.rb +0 -109
  660. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/date_time.rb +0 -94
  661. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/dig_chain.rb +0 -89
  662. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +0 -87
  663. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/document_dynamic_eval_definition.rb +0 -169
  664. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/fetch_env_var.rb +0 -159
  665. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/file_write.rb +0 -133
  666. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/format_string.rb +0 -154
  667. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/hash_conversion.rb +0 -151
  668. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/hash_lookup_method.rb +0 -101
  669. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/hash_slice.rb +0 -80
  670. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/if_inside_else.rb +0 -148
  671. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/if_unless_modifier.rb +0 -362
  672. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/magic_comment_format.rb +0 -307
  673. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/min_max_comparison.rb +0 -91
  674. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/module_member_existence_check.rb +0 -107
  675. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/mutable_constant.rb +0 -246
  676. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/parallel_assignment.rb +0 -306
  677. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/reduce_to_hash.rb +0 -184
  678. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/redundant_array_constructor.rb +0 -77
  679. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/redundant_constant_base.rb +0 -85
  680. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/redundant_format.rb +0 -283
  681. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/redundant_regexp_constructor.rb +0 -46
  682. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/redundant_self.rb +0 -215
  683. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/regexp_literal.rb +0 -231
  684. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/rescue_modifier.rb +0 -112
  685. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/self_assignment.rb +0 -95
  686. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/semicolon.rb +0 -190
  687. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/sole_nested_conditional.rb +0 -244
  688. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/struct_inheritance.rb +0 -79
  689. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/symbol_proc.rb +0 -283
  690. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/top_level_method_definition.rb +0 -86
  691. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/unless_logical_operators.rb +0 -106
  692. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/while_until_do.rb +0 -47
  693. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/while_until_modifier.rb +0 -51
  694. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/word_array.rb +0 -155
  695. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/yoda_condition.rb +0 -185
  696. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/style/zero_length_predicate.rb +0 -154
  697. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/cop/team.rb +0 -290
  698. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/file_patterns.rb +0 -43
  699. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/formatter/disabled_config_formatter.rb +0 -297
  700. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/lsp/runtime.rb +0 -79
  701. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/options.rb +0 -671
  702. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/rspec/shared_contexts.rb +0 -284
  703. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/runner.rb +0 -534
  704. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/server/core.rb +0 -118
  705. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/target_finder.rb +0 -221
  706. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop/version.rb +0 -160
  707. data/vendor/bundle/ruby/4.0.0/gems/rubocop-1.86.1/lib/rubocop.rb +0 -844
  708. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/config/default.yml +0 -1349
  709. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/mixin/database_type_resolvable.rb +0 -66
  710. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/mixin/target_rails_version.rb +0 -41
  711. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/action_filter.rb +0 -110
  712. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/env.rb +0 -57
  713. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/i18n_locale_texts.rb +0 -114
  714. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/not_null_column.rb +0 -165
  715. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/presence.rb +0 -201
  716. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/rake_environment.rb +0 -128
  717. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/redundant_active_record_all_method.rb +0 -190
  718. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/response_parsed_body.rb +0 -99
  719. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/save_bang.rb +0 -350
  720. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/select_map.rb +0 -87
  721. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/strong_parameters_expect.rb +0 -104
  722. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/cop/rails/unknown_env.rb +0 -98
  723. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rails-2.34.3/lib/rubocop/rails/version.rb +0 -14
  724. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/CHANGELOG.md +0 -1110
  725. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/config/default.yml +0 -1050
  726. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/around_block.rb +0 -95
  727. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/contain_exactly.rb +0 -57
  728. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/context_method.rb +0 -57
  729. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/context_wording.rb +0 -128
  730. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/described_class.rb +0 -246
  731. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_example_group.rb +0 -189
  732. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_hook.rb +0 -49
  733. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_line_after_example.rb +0 -82
  734. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_line_after_example_group.rb +0 -42
  735. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_line_after_final_let.rb +0 -40
  736. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_line_after_hook.rb +0 -82
  737. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/empty_line_after_subject.rb +0 -36
  738. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/example_length.rb +0 -76
  739. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/example_without_description.rb +0 -98
  740. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/example_wording.rb +0 -168
  741. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/expect_actual.rb +0 -105
  742. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/expect_change.rb +0 -105
  743. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/expect_in_hook.rb +0 -50
  744. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/expect_in_let.rb +0 -42
  745. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/hook_argument.rb +0 -134
  746. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/hooks_before_examples.rb +0 -81
  747. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/indexed_let.rb +0 -115
  748. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/instance_spy.rb +0 -74
  749. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/iterated_expectation.rb +0 -96
  750. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/leading_subject.rb +0 -86
  751. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/let_before_examples.rb +0 -101
  752. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/let_setup.rb +0 -104
  753. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/missing_example_group_argument.rb +0 -35
  754. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/mixin/metadata.rb +0 -60
  755. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/multiple_expectations.rb +0 -149
  756. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +0 -147
  757. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/multiple_subjects.rb +0 -97
  758. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/named_subject.rb +0 -156
  759. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/no_expectation_example.rb +0 -102
  760. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/overwriting_setup.rb +0 -74
  761. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/predicate_matcher.rb +0 -349
  762. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/redundant_around.rb +0 -65
  763. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/repeated_description.rb +0 -98
  764. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/repeated_example.rb +0 -72
  765. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/repeated_example_group_body.rb +0 -100
  766. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/repeated_example_group_description.rb +0 -96
  767. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/repeated_include_example.rb +0 -105
  768. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/return_from_stub.rb +0 -170
  769. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/scattered_let.rb +0 -59
  770. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/scattered_setup.rb +0 -110
  771. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/shared_context.rb +0 -107
  772. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/skip_block_inside_example.rb +0 -46
  773. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/spec_file_path_format.rb +0 -183
  774. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/subject_declaration.rb +0 -46
  775. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/undescriptive_literals_description.rb +0 -69
  776. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/void_expect.rb +0 -65
  777. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec/yield.rb +0 -82
  778. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/cop/rspec_cops.rb +0 -115
  779. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/rspec/description_extractor.rb +0 -77
  780. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop/rspec/version.rb +0 -10
  781. data/vendor/bundle/ruby/4.0.0/gems/rubocop-rspec-3.9.0/lib/rubocop-rspec.rb +0 -51
  782. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/README.md +0 -562
  783. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +0 -149
  784. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/allow_value_matcher.rb +0 -695
  785. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/helpers.rb +0 -35
  786. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_absence_of_matcher.rb +0 -157
  787. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_acceptance_of_matcher.rb +0 -105
  788. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_comparison_of_matcher.rb +0 -532
  789. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +0 -162
  790. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_exclusion_of_matcher.rb +0 -249
  791. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_inclusion_of_matcher.rb +0 -635
  792. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_length_of_matcher.rb +0 -552
  793. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +0 -676
  794. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validate_presence_of_matcher.rb +0 -402
  795. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validation_matcher.rb +0 -199
  796. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_model/validator.rb +0 -123
  797. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/association_matcher.rb +0 -2017
  798. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/association_matchers/optional_matcher.rb +0 -73
  799. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/association_matchers/required_matcher.rb +0 -78
  800. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/define_enum_for_matcher.rb +0 -778
  801. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/have_attached_matcher.rb +0 -318
  802. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +0 -71
  803. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/uniqueness/namespace.rb +0 -37
  804. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/uniqueness/test_models.rb +0 -23
  805. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb +0 -1207
  806. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/rails_shim.rb +0 -190
  807. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers/version.rb +0 -6
  808. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/lib/shoulda/matchers.rb +0 -24
  809. data/vendor/bundle/ruby/4.0.0/gems/shoulda-matchers-7.0.1/shoulda-matchers.gemspec +0 -42
  810. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/CHANGELOG.md +0 -169
  811. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/LICENSE.md +0 -12
  812. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/lib/websocket/driver/draft75.rb +0 -102
  813. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/lib/websocket/driver/hybi.rb +0 -426
  814. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/lib/websocket/http/headers.rb +0 -112
  815. data/vendor/bundle/ruby/4.0.0/gems/websocket-driver-0.8.0/lib/websocket_mask.so +0 -0
  816. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/README.md +0 -1477
  817. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/kernel.rb +0 -64
  818. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref/map.rb +0 -159
  819. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/cref.rb +0 -69
  820. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/error.rb +0 -23
  821. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_inflector.rb +0 -17
  822. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/gem_loader.rb +0 -68
  823. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/inflector.rb +0 -46
  824. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/callbacks.rb +0 -96
  825. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/config.rb +0 -357
  826. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/eager_load.rb +0 -230
  827. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/file_system.rb +0 -165
  828. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader/helpers.rb +0 -46
  829. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/loader.rb +0 -643
  830. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry/loaders.rb +0 -33
  831. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/registry.rb +0 -89
  832. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk/version.rb +0 -6
  833. data/vendor/bundle/ruby/4.0.0/gems/zeitwerk-2.7.5/lib/zeitwerk.rb +0 -29
  834. data/vendor/bundle/ruby/4.0.0/specifications/action_text-trix-2.1.18.gemspec +0 -23
  835. data/vendor/bundle/ruby/4.0.0/specifications/concurrent-ruby-1.3.6.gemspec +0 -24
  836. data/vendor/bundle/ruby/4.0.0/specifications/factory_bot-6.5.6.gemspec +0 -37
  837. data/vendor/bundle/ruby/4.0.0/specifications/i18n-1.14.8.gemspec +0 -26
  838. data/vendor/bundle/ruby/4.0.0/specifications/json-2.19.4.gemspec +0 -0
  839. data/vendor/bundle/ruby/4.0.0/specifications/marcel-1.1.0.gemspec +0 -29
  840. data/vendor/bundle/ruby/4.0.0/specifications/minitest-6.0.5.gemspec +0 -35
  841. data/vendor/bundle/ruby/4.0.0/specifications/net-imap-0.6.4.gemspec +0 -28
  842. data/vendor/bundle/ruby/4.0.0/specifications/nokogiri-1.19.2-x86_64-linux-gnu.gemspec +0 -31
  843. data/vendor/bundle/ruby/4.0.0/specifications/pp-0.6.3.gemspec +0 -27
  844. data/vendor/bundle/ruby/4.0.0/specifications/psych-5.3.1.gemspec +0 -32
  845. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-1.86.1.gemspec +0 -39
  846. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-rails-2.34.3.gemspec +0 -32
  847. data/vendor/bundle/ruby/4.0.0/specifications/rubocop-rspec-3.9.0.gemspec +0 -29
  848. data/vendor/bundle/ruby/4.0.0/specifications/shoulda-matchers-7.0.1.gemspec +0 -27
  849. data/vendor/bundle/ruby/4.0.0/specifications/websocket-driver-0.8.0.gemspec +0 -34
  850. data/vendor/bundle/ruby/4.0.0/specifications/zeitwerk-2.7.5.gemspec +0 -22
  851. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{json-2.19.4 → json-2.19.9}/gem.build_complete +0 -0
  852. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{json-2.19.4 → json-2.19.9}/mkmf.log +0 -0
  853. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{psych-5.3.1 → psych-5.4.0}/gem.build_complete +0 -0
  854. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{psych-5.3.1 → psych-5.4.0}/mkmf.log +0 -0
  855. /data/vendor/bundle/ruby/4.0.0/extensions/x86_64-linux/4.0.0/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/gem.build_complete +0 -0
  856. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.18 → action_text-trix-2.1.19}/LICENSE +0 -0
  857. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.18 → action_text-trix-2.1.19}/app/assets/stylesheets/trix.css +0 -0
  858. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.18 → action_text-trix-2.1.19}/lib/action_text/trix/engine.rb +0 -0
  859. /data/vendor/bundle/ruby/4.0.0/gems/{action_text-trix-2.1.18 → action_text-trix-2.1.19}/lib/action_text/trix.rb +0 -0
  860. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/Gemfile +0 -0
  861. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/LICENSE.txt +0 -0
  862. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/README.md +0 -0
  863. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/ConcurrentRubyService.java +0 -0
  864. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/JRubyMapBackendLibrary.java +0 -0
  865. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicBooleanLibrary.java +0 -0
  866. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +0 -0
  867. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +0 -0
  868. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +0 -0
  869. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMap.java +0 -0
  870. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/ConcurrentHashMapV8.java +0 -0
  871. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/LongAdder.java +0 -0
  872. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/Striped64.java +0 -0
  873. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/ConcurrentHashMapV8.java +0 -0
  874. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/LongAdder.java +0 -0
  875. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/Striped64.java +0 -0
  876. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166y/ThreadLocalRandom.java +0 -0
  877. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/agent.rb +0 -0
  878. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/array.rb +0 -0
  879. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/async.rb +0 -0
  880. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atom.rb +0 -0
  881. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/atomic_boolean.rb +0 -0
  882. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/atomic_fixnum.rb +0 -0
  883. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/atomic_markable_reference.rb +0 -0
  884. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/count_down_latch.rb +0 -0
  885. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/cyclic_barrier.rb +0 -0
  886. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/event.rb +0 -0
  887. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/fiber_local_var.rb +0 -0
  888. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb +0 -0
  889. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/locals.rb +0 -0
  890. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb +0 -0
  891. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_boolean.rb +0 -0
  892. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb +0 -0
  893. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/mutex_count_down_latch.rb +0 -0
  894. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/mutex_semaphore.rb +0 -0
  895. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/semaphore.rb +0 -0
  896. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb +0 -0
  897. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomic_reference/atomic_direct_update.rb +0 -0
  898. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/atomics.rb +0 -0
  899. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/copy_on_notify_observer_set.rb +0 -0
  900. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/copy_on_write_observer_set.rb +0 -0
  901. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb +0 -0
  902. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/lock_free_stack.rb +0 -0
  903. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb +0 -0
  904. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/map/non_concurrent_map_backend.rb +0 -0
  905. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/map/synchronized_map_backend.rb +0 -0
  906. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/map/truffleruby_map_backend.rb +0 -0
  907. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/non_concurrent_priority_queue.rb +0 -0
  908. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/ruby_non_concurrent_priority_queue.rb +0 -0
  909. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/ruby_timeout_queue.rb +0 -0
  910. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/collection/timeout_queue.rb +0 -0
  911. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/concern/deprecation.rb +0 -0
  912. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/concern/dereferenceable.rb +0 -0
  913. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/concern/logging.rb +0 -0
  914. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/concern/obligation.rb +0 -0
  915. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/concern/observable.rb +0 -0
  916. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/configuration.rb +0 -0
  917. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/constants.rb +0 -0
  918. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/dataflow.rb +0 -0
  919. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/delay.rb +0 -0
  920. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/errors.rb +0 -0
  921. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/exchanger.rb +0 -0
  922. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb +0 -0
  923. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/cached_thread_pool.rb +0 -0
  924. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/executor_service.rb +0 -0
  925. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/fixed_thread_pool.rb +0 -0
  926. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/immediate_executor.rb +0 -0
  927. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/indirect_immediate_executor.rb +0 -0
  928. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb +0 -0
  929. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/java_single_thread_executor.rb +0 -0
  930. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb +0 -0
  931. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/ruby_executor_service.rb +0 -0
  932. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/ruby_single_thread_executor.rb +0 -0
  933. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb +0 -0
  934. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb +0 -0
  935. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/serial_executor_service.rb +0 -0
  936. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/serialized_execution.rb +0 -0
  937. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/serialized_execution_delegator.rb +0 -0
  938. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/simple_executor_service.rb +0 -0
  939. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/single_thread_executor.rb +0 -0
  940. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/thread_pool_executor.rb +0 -0
  941. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executor/timer_set.rb +0 -0
  942. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/executors.rb +0 -0
  943. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/future.rb +0 -0
  944. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/hash.rb +0 -0
  945. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/immutable_struct.rb +0 -0
  946. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/ivar.rb +0 -0
  947. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/map.rb +0 -0
  948. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/maybe.rb +0 -0
  949. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/mutable_struct.rb +0 -0
  950. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/mvar.rb +0 -0
  951. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/options.rb +0 -0
  952. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/promise.rb +0 -0
  953. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/promises.rb +0 -0
  954. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/re_include.rb +0 -0
  955. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/scheduled_task.rb +0 -0
  956. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/set.rb +0 -0
  957. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/settable_struct.rb +0 -0
  958. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/abstract_lockable_object.rb +0 -0
  959. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/abstract_object.rb +0 -0
  960. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb +0 -0
  961. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/condition.rb +0 -0
  962. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/full_memory_barrier.rb +0 -0
  963. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/jruby_lockable_object.rb +0 -0
  964. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/lock.rb +0 -0
  965. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/lockable_object.rb +0 -0
  966. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb +0 -0
  967. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/object.rb +0 -0
  968. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/safe_initialization.rb +0 -0
  969. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization/volatile.rb +0 -0
  970. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/synchronization.rb +0 -0
  971. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/synchronized_delegator.rb +0 -0
  972. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/adder.rb +0 -0
  973. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb +0 -0
  974. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/power_of_two_tuple.rb +0 -0
  975. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/striped64.rb +0 -0
  976. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/volatile.rb +0 -0
  977. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util/xor_shift_random.rb +0 -0
  978. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/thread_safe/util.rb +0 -0
  979. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/timer_task.rb +0 -0
  980. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/tuple.rb +0 -0
  981. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/tvar.rb +0 -0
  982. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/utility/engine.rb +0 -0
  983. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/utility/monotonic_time.rb +0 -0
  984. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb +0 -0
  985. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/utility/native_integer.rb +0 -0
  986. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent/utility/processor_counter.rb +0 -0
  987. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent-ruby.rb +0 -0
  988. /data/vendor/bundle/ruby/4.0.0/gems/{concurrent-ruby-1.3.6 → concurrent-ruby-1.3.7}/lib/concurrent-ruby/concurrent.rb +0 -0
  989. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/CONTRIBUTING.md +0 -0
  990. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/LICENSE +0 -0
  991. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/NAME.md +0 -0
  992. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/aliases.rb +0 -0
  993. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute/association.rb +0 -0
  994. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute/dynamic.rb +0 -0
  995. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute/sequence.rb +0 -0
  996. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute.rb +0 -0
  997. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute_assigner.rb +0 -0
  998. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/attribute_list.rb +0 -0
  999. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/callback.rb +0 -0
  1000. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/callbacks_observer.rb +0 -0
  1001. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/configuration.rb +0 -0
  1002. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/declaration/association.rb +0 -0
  1003. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/declaration/dynamic.rb +0 -0
  1004. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/declaration/implicit.rb +0 -0
  1005. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/declaration.rb +0 -0
  1006. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/declaration_list.rb +0 -0
  1007. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/decorator/attribute_hash.rb +0 -0
  1008. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/decorator/disallows_duplicates_registry.rb +0 -0
  1009. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/decorator/invocation_tracker.rb +0 -0
  1010. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/decorator/new_constructor.rb +0 -0
  1011. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/decorator.rb +0 -0
  1012. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/definition.rb +0 -0
  1013. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/definition_hierarchy.rb +0 -0
  1014. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/enum.rb +0 -0
  1015. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/errors.rb +0 -0
  1016. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/evaluation.rb +0 -0
  1017. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/evaluator.rb +0 -0
  1018. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/evaluator_class_definer.rb +0 -0
  1019. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/factory.rb +0 -0
  1020. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/find_definitions.rb +0 -0
  1021. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/internal.rb +0 -0
  1022. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/null_factory.rb +0 -0
  1023. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/null_object.rb +0 -0
  1024. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/registry.rb +0 -0
  1025. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/reload.rb +0 -0
  1026. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/sequence.rb +0 -0
  1027. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy/attributes_for.rb +0 -0
  1028. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy/build.rb +0 -0
  1029. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy/create.rb +0 -0
  1030. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy/null.rb +0 -0
  1031. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy/stub.rb +0 -0
  1032. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy.rb +0 -0
  1033. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/strategy_syntax_method_registrar.rb +0 -0
  1034. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/syntax/default.rb +0 -0
  1035. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/syntax/methods.rb +0 -0
  1036. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/syntax.rb +0 -0
  1037. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/syntax_runner.rb +0 -0
  1038. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/trait.rb +0 -0
  1039. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot/uri_manager.rb +0 -0
  1040. /data/vendor/bundle/ruby/4.0.0/gems/{factory_bot-6.5.6 → factory_bot-6.6.0}/lib/factory_bot.rb +0 -0
  1041. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/MIT-LICENSE +0 -0
  1042. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/base.rb +0 -0
  1043. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/cache.rb +0 -0
  1044. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/cache_file.rb +0 -0
  1045. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/cascade.rb +0 -0
  1046. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/chain.rb +0 -0
  1047. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/flatten.rb +0 -0
  1048. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/gettext.rb +0 -0
  1049. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/interpolation_compiler.rb +0 -0
  1050. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/key_value.rb +0 -0
  1051. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/lazy_loadable.rb +0 -0
  1052. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/memoize.rb +0 -0
  1053. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/metadata.rb +0 -0
  1054. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend/pluralization.rb +0 -0
  1055. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/backend.rb +0 -0
  1056. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/exceptions.rb +0 -0
  1057. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/gettext/helpers.rb +0 -0
  1058. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/gettext/po_parser.rb +0 -0
  1059. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/gettext.rb +0 -0
  1060. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/interpolate/ruby.rb +0 -0
  1061. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale/fallbacks.rb +0 -0
  1062. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale/tag/parents.rb +0 -0
  1063. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale/tag/rfc4646.rb +0 -0
  1064. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale/tag/simple.rb +0 -0
  1065. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale/tag.rb +0 -0
  1066. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/locale.rb +0 -0
  1067. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/basics.rb +0 -0
  1068. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/defaults.rb +0 -0
  1069. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/interpolation.rb +0 -0
  1070. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/link.rb +0 -0
  1071. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/localization/date.rb +0 -0
  1072. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/localization/date_time.rb +0 -0
  1073. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/localization/procs.rb +0 -0
  1074. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/localization/time.rb +0 -0
  1075. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/localization.rb +0 -0
  1076. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/lookup.rb +0 -0
  1077. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/pluralization.rb +0 -0
  1078. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests/procs.rb +0 -0
  1079. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/tests.rb +0 -0
  1080. /data/vendor/bundle/ruby/4.0.0/gems/{i18n-1.14.8 → i18n-1.15.2}/lib/i18n/utils.rb +0 -0
  1081. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/BSDL +0 -0
  1082. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/COPYING +0 -0
  1083. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/LEGAL +0 -0
  1084. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/generator/Makefile +0 -0
  1085. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/generator/extconf.rb +0 -0
  1086. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/json.h +0 -0
  1087. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/parser/Makefile +0 -0
  1088. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/parser/extconf.rb +0 -0
  1089. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/simd/conf.rb +0 -0
  1090. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/simd/simd.h +0 -0
  1091. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/vendor/fpconv.c +0 -0
  1092. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/vendor/jeaiii-ltoa.h +0 -0
  1093. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/ext/json/ext/vendor/ryu.h +0 -0
  1094. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/json.gemspec +0 -0
  1095. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/bigdecimal.rb +0 -0
  1096. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/complex.rb +0 -0
  1097. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/core.rb +0 -0
  1098. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/date.rb +0 -0
  1099. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/date_time.rb +0 -0
  1100. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/exception.rb +0 -0
  1101. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/ostruct.rb +0 -0
  1102. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/range.rb +0 -0
  1103. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/rational.rb +0 -0
  1104. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/regexp.rb +0 -0
  1105. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/set.rb +0 -0
  1106. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/string.rb +0 -0
  1107. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/struct.rb +0 -0
  1108. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/symbol.rb +0 -0
  1109. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/add/time.rb +0 -0
  1110. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/common.rb +0 -0
  1111. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/ext/generator/state.rb +0 -0
  1112. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/ext.rb +0 -0
  1113. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json/generic_object.rb +0 -0
  1114. /data/vendor/bundle/ruby/4.0.0/gems/{json-2.19.4 → json-2.19.9}/lib/json.rb +0 -0
  1115. /data/vendor/bundle/ruby/4.0.0/gems/{marcel-1.1.0 → marcel-1.2.1}/APACHE-LICENSE +0 -0
  1116. /data/vendor/bundle/ruby/4.0.0/gems/{marcel-1.1.0 → marcel-1.2.1}/MIT-LICENSE +0 -0
  1117. /data/vendor/bundle/ruby/4.0.0/gems/{marcel-1.1.0 → marcel-1.2.1}/README.md +0 -0
  1118. /data/vendor/bundle/ruby/4.0.0/gems/{marcel-1.1.0 → marcel-1.2.1}/lib/marcel/mime_type.rb +0 -0
  1119. /data/vendor/bundle/ruby/4.0.0/gems/{marcel-1.1.0 → marcel-1.2.1}/lib/marcel.rb +0 -0
  1120. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/Manifest.txt +0 -0
  1121. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/README.rdoc +0 -0
  1122. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/Rakefile +0 -0
  1123. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/bin/minitest +0 -0
  1124. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/design_rationale.rb +0 -0
  1125. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/hoe/minitest.rb +0 -0
  1126. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/autorun.rb +0 -0
  1127. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/benchmark.rb +0 -0
  1128. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/bisect.rb +0 -0
  1129. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/complete.rb +0 -0
  1130. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/compress.rb +0 -0
  1131. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/error_on_warning.rb +0 -0
  1132. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/expectations.rb +0 -0
  1133. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/find_minimal_combination.rb +0 -0
  1134. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/hell.rb +0 -0
  1135. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/manual_plugins.rb +0 -0
  1136. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/parallel.rb +0 -0
  1137. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/path_expander.rb +0 -0
  1138. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/pride.rb +0 -0
  1139. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/pride_plugin.rb +0 -0
  1140. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/server.rb +0 -0
  1141. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/server_plugin.rb +0 -0
  1142. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/spec.rb +0 -0
  1143. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/sprint.rb +0 -0
  1144. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/sprint_plugin.rb +0 -0
  1145. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/test.rb +0 -0
  1146. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/lib/minitest/test_task.rb +0 -0
  1147. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/metametameta.rb +0 -0
  1148. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_bisect.rb +0 -0
  1149. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_find_minimal_combination.rb +0 -0
  1150. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_assertions.rb +0 -0
  1151. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_benchmark.rb +0 -0
  1152. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_reporter.rb +0 -0
  1153. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_spec.rb +0 -0
  1154. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_test.rb +0 -0
  1155. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_minitest_test_task.rb +0 -0
  1156. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_path_expander.rb +0 -0
  1157. /data/vendor/bundle/ruby/4.0.0/gems/{minitest-6.0.5 → minitest-6.0.6}/test/minitest/test_server.rb +0 -0
  1158. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/BSDL +0 -0
  1159. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/COPYING +0 -0
  1160. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/Gemfile +0 -0
  1161. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/LICENSE.txt +0 -0
  1162. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/README.md +0 -0
  1163. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/Rakefile +0 -0
  1164. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/docs/styles.css +0 -0
  1165. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/authenticators.rb +0 -0
  1166. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/config/attr_accessors.rb +0 -0
  1167. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/config/attr_inheritance.rb +0 -0
  1168. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/config/attr_type_coercion.rb +0 -0
  1169. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/config/attr_version_defaults.rb +0 -0
  1170. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/connection_state.rb +0 -0
  1171. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/deprecated_client_options.rb +0 -0
  1172. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/errors.rb +0 -0
  1173. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/esearch_result.rb +0 -0
  1174. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/fetch_data.rb +0 -0
  1175. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/flags.rb +0 -0
  1176. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/response_data.rb +0 -0
  1177. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/response_parser/parser_utils.rb +0 -0
  1178. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/anonymous_authenticator.rb +0 -0
  1179. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/authentication_exchange.rb +0 -0
  1180. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/authenticators.rb +0 -0
  1181. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/client_adapter.rb +0 -0
  1182. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/cram_md5_authenticator.rb +0 -0
  1183. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/digest_md5_authenticator.rb +0 -0
  1184. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/external_authenticator.rb +0 -0
  1185. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/gs2_header.rb +0 -0
  1186. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/login_authenticator.rb +0 -0
  1187. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/oauthbearer_authenticator.rb +0 -0
  1188. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/plain_authenticator.rb +0 -0
  1189. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/protocol_adapters.rb +0 -0
  1190. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/scram_algorithm.rb +0 -0
  1191. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/scram_authenticator.rb +0 -0
  1192. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/stringprep.rb +0 -0
  1193. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl/xoauth2_authenticator.rb +0 -0
  1194. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl.rb +0 -0
  1195. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sasl_adapter.rb +0 -0
  1196. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/search_result.rb +0 -0
  1197. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/sequence_set.rb +0 -0
  1198. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep/nameprep.rb +0 -0
  1199. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep/saslprep.rb +0 -0
  1200. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep/saslprep_tables.rb +0 -0
  1201. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep/tables.rb +0 -0
  1202. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep/trace.rb +0 -0
  1203. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/stringprep.rb +0 -0
  1204. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/uidplus_data.rb +0 -0
  1205. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/lib/net/imap/vanished_data.rb +0 -0
  1206. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/net-imap.gemspec +0 -0
  1207. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/rakelib/benchmarks.rake +0 -0
  1208. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/rakelib/rdoc.rake +0 -0
  1209. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/rakelib/rfcs.rake +0 -0
  1210. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/rakelib/saslprep.rake +0 -0
  1211. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/rakelib/string_prep_tables_generator.rb +0 -0
  1212. /data/vendor/bundle/ruby/4.0.0/gems/{net-imap-0.6.4 → net-imap-0.6.4.1}/sample/net-imap.rb +0 -0
  1213. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/Gemfile +0 -0
  1214. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/LICENSE-DEPENDENCIES.md +0 -0
  1215. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/LICENSE.md +0 -0
  1216. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/README.md +0 -0
  1217. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/bin/nokogiri +0 -0
  1218. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/dependencies.yml +0 -0
  1219. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/depend +0 -0
  1220. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/extconf.rb +0 -0
  1221. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/gumbo.c +0 -0
  1222. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_document.c +0 -0
  1223. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_element_description.c +0 -0
  1224. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_entity_lookup.c +0 -0
  1225. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_sax_parser.c +0 -0
  1226. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_sax_parser_context.c +0 -0
  1227. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/html4_sax_push_parser.c +0 -0
  1228. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exslt.h +0 -0
  1229. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exsltconfig.h +0 -0
  1230. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libexslt/exsltexports.h +0 -0
  1231. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/HTMLparser.h +0 -0
  1232. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/HTMLtree.h +0 -0
  1233. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/SAX.h +0 -0
  1234. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/SAX2.h +0 -0
  1235. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/c14n.h +0 -0
  1236. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/catalog.h +0 -0
  1237. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/chvalid.h +0 -0
  1238. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/debugXML.h +0 -0
  1239. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/dict.h +0 -0
  1240. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/encoding.h +0 -0
  1241. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/entities.h +0 -0
  1242. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/globals.h +0 -0
  1243. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/hash.h +0 -0
  1244. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/list.h +0 -0
  1245. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/nanoftp.h +0 -0
  1246. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/nanohttp.h +0 -0
  1247. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/parser.h +0 -0
  1248. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/parserInternals.h +0 -0
  1249. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/pattern.h +0 -0
  1250. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/relaxng.h +0 -0
  1251. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/schemasInternals.h +0 -0
  1252. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/schematron.h +0 -0
  1253. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/threads.h +0 -0
  1254. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/tree.h +0 -0
  1255. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/uri.h +0 -0
  1256. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/valid.h +0 -0
  1257. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xinclude.h +0 -0
  1258. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xlink.h +0 -0
  1259. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlIO.h +0 -0
  1260. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlautomata.h +0 -0
  1261. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlerror.h +0 -0
  1262. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlexports.h +0 -0
  1263. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlmemory.h +0 -0
  1264. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlmodule.h +0 -0
  1265. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlreader.h +0 -0
  1266. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlregexp.h +0 -0
  1267. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlsave.h +0 -0
  1268. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlschemas.h +0 -0
  1269. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlschemastypes.h +0 -0
  1270. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlstring.h +0 -0
  1271. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlunicode.h +0 -0
  1272. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlversion.h +0 -0
  1273. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xmlwriter.h +0 -0
  1274. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpath.h +0 -0
  1275. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpathInternals.h +0 -0
  1276. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxml2/libxml/xpointer.h +0 -0
  1277. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/attributes.h +0 -0
  1278. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/documents.h +0 -0
  1279. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/extensions.h +0 -0
  1280. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/extra.h +0 -0
  1281. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/functions.h +0 -0
  1282. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/imports.h +0 -0
  1283. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/keys.h +0 -0
  1284. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/namespaces.h +0 -0
  1285. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/numbersInternals.h +0 -0
  1286. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/pattern.h +0 -0
  1287. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/preproc.h +0 -0
  1288. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/security.h +0 -0
  1289. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/templates.h +0 -0
  1290. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/transform.h +0 -0
  1291. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/variables.h +0 -0
  1292. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xslt.h +0 -0
  1293. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltInternals.h +0 -0
  1294. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltconfig.h +0 -0
  1295. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltexports.h +0 -0
  1296. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltlocale.h +0 -0
  1297. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/include/libxslt/xsltutils.h +0 -0
  1298. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/libxml2_polyfill.c +0 -0
  1299. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/test_global_handlers.c +0 -0
  1300. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_attribute_decl.c +0 -0
  1301. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_cdata.c +0 -0
  1302. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_comment.c +0 -0
  1303. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_document_fragment.c +0 -0
  1304. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_dtd.c +0 -0
  1305. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_element_content.c +0 -0
  1306. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_element_decl.c +0 -0
  1307. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_encoding_handler.c +0 -0
  1308. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_entity_decl.c +0 -0
  1309. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_entity_reference.c +0 -0
  1310. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_namespace.c +0 -0
  1311. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_processing_instruction.c +0 -0
  1312. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_reader.c +0 -0
  1313. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_relax_ng.c +0 -0
  1314. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_sax_parser.c +0 -0
  1315. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_sax_parser_context.c +0 -0
  1316. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_sax_push_parser.c +0 -0
  1317. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_schema.c +0 -0
  1318. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_syntax_error.c +0 -0
  1319. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/ext/nokogiri/xml_text.c +0 -0
  1320. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/gumbo-parser/CHANGES.md +0 -0
  1321. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/gumbo-parser/Makefile +0 -0
  1322. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/gumbo-parser/THANKS +0 -0
  1323. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/class_resolver.rb +0 -0
  1324. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/node.rb +0 -0
  1325. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/parser.rb +0 -0
  1326. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/parser.y +0 -0
  1327. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/parser_extras.rb +0 -0
  1328. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/selector_cache.rb +0 -0
  1329. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/syntax_error.rb +0 -0
  1330. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css/xpath_visitor.rb +0 -0
  1331. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/css.rb +0 -0
  1332. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/decorators/slop.rb +0 -0
  1333. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/encoding_handler.rb +0 -0
  1334. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/extension.rb +0 -0
  1335. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/gumbo.rb +0 -0
  1336. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html.rb +0 -0
  1337. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/builder.rb +0 -0
  1338. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/document.rb +0 -0
  1339. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/document_fragment.rb +0 -0
  1340. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/element_description.rb +0 -0
  1341. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/element_description_defaults.rb +0 -0
  1342. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/encoding_reader.rb +0 -0
  1343. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/entity_lookup.rb +0 -0
  1344. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/sax/parser.rb +0 -0
  1345. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/sax/parser_context.rb +0 -0
  1346. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4/sax/push_parser.rb +0 -0
  1347. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html4.rb +0 -0
  1348. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html5/builder.rb +0 -0
  1349. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html5/document.rb +0 -0
  1350. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html5/document_fragment.rb +0 -0
  1351. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html5/node.rb +0 -0
  1352. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/html5.rb +0 -0
  1353. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/jruby/dependencies.rb +0 -0
  1354. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/jruby/nokogiri_jars.rb +0 -0
  1355. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/syntax_error.rb +0 -0
  1356. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/version.rb +0 -0
  1357. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/attr.rb +0 -0
  1358. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/attribute_decl.rb +0 -0
  1359. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/builder.rb +0 -0
  1360. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/cdata.rb +0 -0
  1361. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/character_data.rb +0 -0
  1362. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/document_fragment.rb +0 -0
  1363. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/dtd.rb +0 -0
  1364. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/element_content.rb +0 -0
  1365. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/element_decl.rb +0 -0
  1366. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/entity_decl.rb +0 -0
  1367. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/entity_reference.rb +0 -0
  1368. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/namespace.rb +0 -0
  1369. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/node/save_options.rb +0 -0
  1370. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/node_set.rb +0 -0
  1371. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/notation.rb +0 -0
  1372. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/pp/character_data.rb +0 -0
  1373. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/pp/node.rb +0 -0
  1374. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/pp.rb +0 -0
  1375. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/processing_instruction.rb +0 -0
  1376. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/reader.rb +0 -0
  1377. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/relax_ng.rb +0 -0
  1378. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/sax/parser.rb +0 -0
  1379. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/sax/parser_context.rb +0 -0
  1380. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/sax/push_parser.rb +0 -0
  1381. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/sax.rb +0 -0
  1382. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/schema.rb +0 -0
  1383. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/searchable.rb +0 -0
  1384. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/syntax_error.rb +0 -0
  1385. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/text.rb +0 -0
  1386. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/xpath/syntax_error.rb +0 -0
  1387. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/xpath.rb +0 -0
  1388. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml/xpath_context.rb +0 -0
  1389. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri/xml.rb +0 -0
  1390. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/nokogiri.rb +0 -0
  1391. /data/vendor/bundle/ruby/4.0.0/gems/{nokogiri-1.19.2-x86_64-linux-gnu → nokogiri-1.19.4-x86_64-linux-gnu}/lib/xsd/xmlparser/nokogiri.rb +0 -0
  1392. /data/vendor/bundle/ruby/4.0.0/gems/{pp-0.6.3 → pp-0.6.4}/BSDL +0 -0
  1393. /data/vendor/bundle/ruby/4.0.0/gems/{pp-0.6.3 → pp-0.6.4}/COPYING +0 -0
  1394. /data/vendor/bundle/ruby/4.0.0/gems/{pp-0.6.3 → pp-0.6.4}/pp.gemspec +0 -0
  1395. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/CONTRIBUTING.md +0 -0
  1396. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/LICENSE +0 -0
  1397. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/Makefile +0 -0
  1398. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/depend +0 -0
  1399. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/extconf.rb +0 -0
  1400. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.c +0 -0
  1401. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.h +0 -0
  1402. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.c +0 -0
  1403. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.h +0 -0
  1404. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.h +0 -0
  1405. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.c +0 -0
  1406. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.h +0 -0
  1407. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.c +0 -0
  1408. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.h +0 -0
  1409. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/class_loader.rb +0 -0
  1410. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/coder.rb +0 -0
  1411. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/core_ext.rb +0 -0
  1412. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/exception.rb +0 -0
  1413. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handler.rb +0 -0
  1414. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/document_stream.rb +0 -0
  1415. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/recorder.rb +0 -0
  1416. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/ruby_events.rb +0 -0
  1417. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/stream.rb +0 -0
  1418. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/tree_builder.rb +0 -0
  1419. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/yaml_events.rb +0 -0
  1420. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/alias.rb +0 -0
  1421. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/document.rb +0 -0
  1422. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/mapping.rb +0 -0
  1423. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/node.rb +0 -0
  1424. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/scalar.rb +0 -0
  1425. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/sequence.rb +0 -0
  1426. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/stream.rb +0 -0
  1427. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes.rb +0 -0
  1428. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/omap.rb +0 -0
  1429. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/parser.rb +0 -0
  1430. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/scalar_scanner.rb +0 -0
  1431. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/set.rb +0 -0
  1432. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/stream.rb +0 -0
  1433. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/streaming.rb +0 -0
  1434. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/syntax_error.rb +0 -0
  1435. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/tree_builder.rb +0 -0
  1436. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/depth_first.rb +0 -0
  1437. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/emitter.rb +0 -0
  1438. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/json_tree.rb +0 -0
  1439. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/to_ruby.rb +0 -0
  1440. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/visitor.rb +0 -0
  1441. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/yaml_tree.rb +0 -0
  1442. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors.rb +0 -0
  1443. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/y.rb +0 -0
  1444. /data/vendor/bundle/ruby/4.0.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.rb +0 -0
  1445. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/LICENSE.txt +0 -0
  1446. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/README.md +0 -0
  1447. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/assets/logo.png +0 -0
  1448. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/assets/output.css.erb +0 -0
  1449. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/assets/output.html.erb +0 -0
  1450. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/config/internal_affairs.yml +0 -0
  1451. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/exe/rubocop +0 -0
  1452. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/arguments_env.rb +0 -0
  1453. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/arguments_file.rb +0 -0
  1454. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ast_aliases.rb +0 -0
  1455. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cache_config.rb +0 -0
  1456. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cached_data.rb +0 -0
  1457. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/base.rb +0 -0
  1458. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/execute_runner.rb +0 -0
  1459. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/init_dotfile.rb +0 -0
  1460. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/lsp.rb +0 -0
  1461. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/mcp.rb +0 -0
  1462. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/show_cops.rb +0 -0
  1463. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command/version.rb +0 -0
  1464. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/command.rb +0 -0
  1465. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cli/environment.rb +0 -0
  1466. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config.rb +0 -0
  1467. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_finder.rb +0 -0
  1468. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/changed_enforced_styles.rb +0 -0
  1469. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/changed_parameter.rb +0 -0
  1470. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/cop_rule.rb +0 -0
  1471. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/extracted_cop.rb +0 -0
  1472. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/parameter_rule.rb +0 -0
  1473. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/removed_cop.rb +0 -0
  1474. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/renamed_cop.rb +0 -0
  1475. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/rule.rb +0 -0
  1476. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion/split_cop.rb +0 -0
  1477. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_obsoletion.rb +0 -0
  1478. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_regeneration.rb +0 -0
  1479. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/config_validator.rb +0 -0
  1480. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/badge.rb +0 -0
  1481. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/duplicated_gem.rb +0 -0
  1482. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/duplicated_group.rb +0 -0
  1483. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/gem_filename.rb +0 -0
  1484. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/gem_version.rb +0 -0
  1485. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/insecure_protocol_source.rb +0 -0
  1486. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/bundler/ordered_gems.rb +0 -0
  1487. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/commissioner.rb +0 -0
  1488. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/cop.rb +0 -0
  1489. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/corrector.rb +0 -0
  1490. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/alignment_corrector.rb +0 -0
  1491. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/condition_corrector.rb +0 -0
  1492. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/each_to_for_corrector.rb +0 -0
  1493. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/empty_line_corrector.rb +0 -0
  1494. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/for_to_each_corrector.rb +0 -0
  1495. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/if_then_corrector.rb +0 -0
  1496. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +0 -0
  1497. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/line_break_corrector.rb +0 -0
  1498. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +0 -0
  1499. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/percent_literal_corrector.rb +0 -0
  1500. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/punctuation_corrector.rb +0 -0
  1501. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/require_library_corrector.rb +0 -0
  1502. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/space_corrector.rb +0 -0
  1503. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/string_literal_corrector.rb +0 -0
  1504. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/correctors/unused_arg_corrector.rb +0 -0
  1505. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/documentation.rb +0 -0
  1506. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/force.rb +0 -0
  1507. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/add_runtime_dependency.rb +0 -0
  1508. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/attribute_assignment.rb +0 -0
  1509. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/dependency_version.rb +0 -0
  1510. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +0 -0
  1511. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/development_dependencies.rb +0 -0
  1512. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/ordered_dependencies.rb +0 -0
  1513. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/gemspec/required_ruby_version.rb +0 -0
  1514. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/generator/configuration_injector.rb +0 -0
  1515. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/generator/require_file_injector.rb +0 -0
  1516. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/generator.rb +0 -0
  1517. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/ignored_node.rb +0 -0
  1518. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/cop_description.rb +0 -0
  1519. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/cop_enabled.rb +0 -0
  1520. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/create_empty_file.rb +0 -0
  1521. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +0 -0
  1522. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/example_description.rb +0 -0
  1523. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb +0 -0
  1524. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb +0 -0
  1525. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/itblock_handler.rb +0 -0
  1526. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/lambda_or_proc.rb +0 -0
  1527. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/location_exists.rb +0 -0
  1528. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/location_expression.rb +0 -0
  1529. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +0 -0
  1530. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/method_name_equal.rb +0 -0
  1531. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_destructuring.rb +0 -0
  1532. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +0 -0
  1533. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +0 -0
  1534. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +0 -0
  1535. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +0 -0
  1536. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +0 -0
  1537. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_type_group.rb +0 -0
  1538. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +0 -0
  1539. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +0 -0
  1540. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/numblock_handler.rb +0 -0
  1541. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +0 -0
  1542. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +0 -0
  1543. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/operator_keyword.rb +0 -0
  1544. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/plugin.rb +0 -0
  1545. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb +0 -0
  1546. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb +0 -0
  1547. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +0 -0
  1548. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_expect_offense_arguments.rb +0 -0
  1549. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +0 -0
  1550. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +0 -0
  1551. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_method_dispatch_node.rb +0 -0
  1552. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +0 -0
  1553. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +0 -0
  1554. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +0 -0
  1555. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/undefined_config.rb +0 -0
  1556. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +0 -0
  1557. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb +0 -0
  1558. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/internal_affairs.rb +0 -0
  1559. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/access_modifier_indentation.rb +0 -0
  1560. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/argument_alignment.rb +0 -0
  1561. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/array_alignment.rb +0 -0
  1562. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/assignment_indentation.rb +0 -0
  1563. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/block_end_newline.rb +0 -0
  1564. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/case_indentation.rb +0 -0
  1565. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +0 -0
  1566. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +0 -0
  1567. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/comment_indentation.rb +0 -0
  1568. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/condition_position.rb +0 -0
  1569. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/def_end_alignment.rb +0 -0
  1570. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/dot_position.rb +0 -0
  1571. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/else_alignment.rb +0 -0
  1572. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_comment.rb +0 -0
  1573. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +0 -0
  1574. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +0 -0
  1575. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_line_between_defs.rb +0 -0
  1576. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines.rb +0 -0
  1577. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_after_module_inclusion.rb +0 -0
  1578. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +0 -0
  1579. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +0 -0
  1580. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +0 -0
  1581. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +0 -0
  1582. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +0 -0
  1583. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +0 -0
  1584. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +0 -0
  1585. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +0 -0
  1586. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +0 -0
  1587. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/end_of_line.rb +0 -0
  1588. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/extra_spacing.rb +0 -0
  1589. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_argument_indentation.rb +0 -0
  1590. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_array_element_indentation.rb +0 -0
  1591. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_array_element_line_break.rb +0 -0
  1592. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_hash_element_indentation.rb +0 -0
  1593. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_hash_element_line_break.rb +0 -0
  1594. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_method_argument_line_break.rb +0 -0
  1595. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +0 -0
  1596. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/first_parameter_indentation.rb +0 -0
  1597. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/hash_alignment.rb +0 -0
  1598. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +0 -0
  1599. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/heredoc_indentation.rb +0 -0
  1600. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/indentation_consistency.rb +0 -0
  1601. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/indentation_style.rb +0 -0
  1602. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/initial_indentation.rb +0 -0
  1603. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/leading_comment_space.rb +0 -0
  1604. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/leading_empty_lines.rb +0 -0
  1605. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/line_continuation_leading_space.rb +0 -0
  1606. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/line_continuation_spacing.rb +0 -0
  1607. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +0 -0
  1608. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/line_length.rb +0 -0
  1609. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +0 -0
  1610. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +0 -0
  1611. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_assignment_layout.rb +0 -0
  1612. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_block_layout.rb +0 -0
  1613. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +0 -0
  1614. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +0 -0
  1615. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +0 -0
  1616. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +0 -0
  1617. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +0 -0
  1618. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/multiline_operation_indentation.rb +0 -0
  1619. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/parameter_alignment.rb +0 -0
  1620. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +0 -0
  1621. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/single_line_block_chain.rb +0 -0
  1622. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_after_colon.rb +0 -0
  1623. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_after_comma.rb +0 -0
  1624. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_after_method_name.rb +0 -0
  1625. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_after_not.rb +0 -0
  1626. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_after_semicolon.rb +0 -0
  1627. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_around_block_parameters.rb +0 -0
  1628. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +0 -0
  1629. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_around_keyword.rb +0 -0
  1630. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_around_method_call_operator.rb +0 -0
  1631. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_around_operators.rb +0 -0
  1632. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_before_block_braces.rb +0 -0
  1633. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_before_comma.rb +0 -0
  1634. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_before_comment.rb +0 -0
  1635. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_before_first_arg.rb +0 -0
  1636. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_before_semicolon.rb +0 -0
  1637. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_in_lambda_literal.rb +0 -0
  1638. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +0 -0
  1639. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +0 -0
  1640. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_block_braces.rb +0 -0
  1641. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +0 -0
  1642. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_parens.rb +0 -0
  1643. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +0 -0
  1644. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_range_literal.rb +0 -0
  1645. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +0 -0
  1646. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +0 -0
  1647. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/trailing_empty_lines.rb +0 -0
  1648. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/layout/trailing_whitespace.rb +0 -0
  1649. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/legacy/corrections_proxy.rb +0 -0
  1650. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/legacy/corrector.rb +0 -0
  1651. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/ambiguous_operator.rb +0 -0
  1652. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/ambiguous_range.rb +0 -0
  1653. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +0 -0
  1654. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/array_literal_in_regexp.rb +0 -0
  1655. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/assignment_in_condition.rb +0 -0
  1656. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/big_decimal_new.rb +0 -0
  1657. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +0 -0
  1658. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/boolean_symbol.rb +0 -0
  1659. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/constant_definition_in_block.rb +0 -0
  1660. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/cop_directive_syntax.rb +0 -0
  1661. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/data_define_override.rb +0 -0
  1662. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/deprecated_class_methods.rb +0 -0
  1663. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +0 -0
  1664. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +0 -0
  1665. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_branch.rb +0 -0
  1666. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_case_condition.rb +0 -0
  1667. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +0 -0
  1668. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_hash_key.rb +0 -0
  1669. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_magic_comment.rb +0 -0
  1670. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_match_pattern.rb +0 -0
  1671. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_methods.rb +0 -0
  1672. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +0 -0
  1673. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_require.rb +0 -0
  1674. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +0 -0
  1675. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/duplicate_set_element.rb +0 -0
  1676. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/each_with_object_argument.rb +0 -0
  1677. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/else_layout.rb +0 -0
  1678. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_class.rb +0 -0
  1679. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_conditional_body.rb +0 -0
  1680. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_ensure.rb +0 -0
  1681. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_expression.rb +0 -0
  1682. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_file.rb +0 -0
  1683. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_in_pattern.rb +0 -0
  1684. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_interpolation.rb +0 -0
  1685. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/empty_when.rb +0 -0
  1686. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/flip_flop.rb +0 -0
  1687. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/float_out_of_range.rb +0 -0
  1688. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/format_parameter_mismatch.rb +0 -0
  1689. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/hash_compare_by_identity.rb +0 -0
  1690. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/hash_new_with_keyword_arguments_as_default.rb +0 -0
  1691. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/heredoc_method_call_position.rb +0 -0
  1692. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/identity_comparison.rb +0 -0
  1693. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/implicit_string_concatenation.rb +0 -0
  1694. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/ineffective_access_modifier.rb +0 -0
  1695. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/inherit_exception.rb +0 -0
  1696. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/it_without_arguments_in_block.rb +0 -0
  1697. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/literal_as_condition.rb +0 -0
  1698. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/loop.rb +0 -0
  1699. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/missing_super.rb +0 -0
  1700. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/mixed_case_range.rb +0 -0
  1701. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +0 -0
  1702. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/nested_method_definition.rb +0 -0
  1703. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/nested_percent_literal.rb +0 -0
  1704. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/next_without_accumulator.rb +0 -0
  1705. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/non_atomic_file_operation.rb +0 -0
  1706. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/or_assignment_to_constant.rb +0 -0
  1707. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +0 -0
  1708. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/percent_string_array.rb +0 -0
  1709. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/percent_symbol_array.rb +0 -0
  1710. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +0 -0
  1711. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/redundant_require_statement.rb +0 -0
  1712. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/redundant_string_coercion.rb +0 -0
  1713. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/rescue_exception.rb +0 -0
  1714. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/return_in_void_context.rb +0 -0
  1715. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/safe_navigation_consistency.rb +0 -0
  1716. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/shadowed_argument.rb +0 -0
  1717. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/struct_new_override.rb +0 -0
  1718. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/suppressed_exception.rb +0 -0
  1719. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/syntax.rb +0 -0
  1720. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/to_json.rb +0 -0
  1721. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/triple_quotes.rb +0 -0
  1722. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +0 -0
  1723. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unexpected_block_arity.rb +0 -0
  1724. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unified_integer.rb +0 -0
  1725. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +0 -0
  1726. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unreachable_loop.rb +0 -0
  1727. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unreachable_pattern_branch.rb +0 -0
  1728. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unused_block_argument.rb +0 -0
  1729. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/unused_method_argument.rb +0 -0
  1730. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/uri_escape_unescape.rb +0 -0
  1731. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/uri_regexp.rb +0 -0
  1732. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_access_modifier.rb +0 -0
  1733. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_constant_scoping.rb +0 -0
  1734. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_default_value_argument.rb +0 -0
  1735. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_defined.rb +0 -0
  1736. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_else_without_rescue.rb +0 -0
  1737. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_method_definition.rb +0 -0
  1738. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_numeric_operation.rb +0 -0
  1739. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_or.rb +0 -0
  1740. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/useless_rescue.rb +0 -0
  1741. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/lint/void.rb +0 -0
  1742. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/message_annotator.rb +0 -0
  1743. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/abc_size.rb +0 -0
  1744. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/block_nesting.rb +0 -0
  1745. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/class_length.rb +0 -0
  1746. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +0 -0
  1747. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/module_length.rb +0 -0
  1748. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/parameter_lists.rb +0 -0
  1749. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/perceived_complexity.rb +0 -0
  1750. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +0 -0
  1751. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +0 -0
  1752. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +0 -0
  1753. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb +0 -0
  1754. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/migration/department_name.rb +0 -0
  1755. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/alignment.rb +0 -0
  1756. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/allowed_identifiers.rb +0 -0
  1757. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/allowed_methods.rb +0 -0
  1758. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/allowed_pattern.rb +0 -0
  1759. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/allowed_receivers.rb +0 -0
  1760. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/annotation_comment.rb +0 -0
  1761. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/array_min_size.rb +0 -0
  1762. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/array_syntax.rb +0 -0
  1763. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/auto_corrector.rb +0 -0
  1764. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/check_assignment.rb +0 -0
  1765. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/check_line_breakable.rb +0 -0
  1766. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/check_single_line_suitability.rb +0 -0
  1767. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/code_length.rb +0 -0
  1768. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/comments_help.rb +0 -0
  1769. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/configurable_enforced_style.rb +0 -0
  1770. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/configurable_formatting.rb +0 -0
  1771. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/configurable_naming.rb +0 -0
  1772. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/configurable_numbering.rb +0 -0
  1773. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/def_node.rb +0 -0
  1774. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/dig_help.rb +0 -0
  1775. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/documentation_comment.rb +0 -0
  1776. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/duplication.rb +0 -0
  1777. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/empty_lines_around_body.rb +0 -0
  1778. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/empty_parameter.rb +0 -0
  1779. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/end_keyword_alignment.rb +0 -0
  1780. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/endless_method_rewriter.rb +0 -0
  1781. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/enforce_superclass.rb +0 -0
  1782. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/first_element_line_break.rb +0 -0
  1783. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/forbidden_identifiers.rb +0 -0
  1784. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/forbidden_pattern.rb +0 -0
  1785. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/frozen_string_literal.rb +0 -0
  1786. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/gem_declaration.rb +0 -0
  1787. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/gemspec_help.rb +0 -0
  1788. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/hash_alignment_styles.rb +0 -0
  1789. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +0 -0
  1790. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/hash_subset.rb +0 -0
  1791. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/hash_transform_method/autocorrection.rb +0 -0
  1792. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/hash_transform_method.rb +0 -0
  1793. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/heredoc.rb +0 -0
  1794. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/integer_node.rb +0 -0
  1795. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/interpolation.rb +0 -0
  1796. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/line_length_help.rb +0 -0
  1797. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/match_range.rb +0 -0
  1798. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/method_complexity.rb +0 -0
  1799. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/method_preference.rb +0 -0
  1800. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/min_body_length.rb +0 -0
  1801. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/min_branches_count.rb +0 -0
  1802. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/multiline_element_indentation.rb +0 -0
  1803. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +0 -0
  1804. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +0 -0
  1805. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +0 -0
  1806. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/negative_conditional.rb +0 -0
  1807. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/nil_methods.rb +0 -0
  1808. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/on_normal_if_unless.rb +0 -0
  1809. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/ordered_gem_node.rb +0 -0
  1810. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/parentheses.rb +0 -0
  1811. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/percent_array.rb +0 -0
  1812. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/percent_literal.rb +0 -0
  1813. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/preceding_following_alignment.rb +0 -0
  1814. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/preferred_delimiters.rb +0 -0
  1815. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/range_help.rb +0 -0
  1816. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/rational_literal.rb +0 -0
  1817. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/require_library.rb +0 -0
  1818. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/rescue_node.rb +0 -0
  1819. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/safe_assignment.rb +0 -0
  1820. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/space_after_punctuation.rb +0 -0
  1821. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/space_before_punctuation.rb +0 -0
  1822. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/statement_modifier.rb +0 -0
  1823. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/string_help.rb +0 -0
  1824. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/string_literals_help.rb +0 -0
  1825. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/surrounding_space.rb +0 -0
  1826. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/symbol_help.rb +0 -0
  1827. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/target_ruby_version.rb +0 -0
  1828. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/trailing_body.rb +0 -0
  1829. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/trailing_comma.rb +0 -0
  1830. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/uncommunicative_name.rb +0 -0
  1831. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/unused_argument.rb +0 -0
  1832. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/mixin/visibility_help.rb +0 -0
  1833. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/accessor_method_name.rb +0 -0
  1834. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/ascii_identifiers.rb +0 -0
  1835. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/block_forwarding.rb +0 -0
  1836. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/block_parameter_name.rb +0 -0
  1837. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/class_and_module_camel_case.rb +0 -0
  1838. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/constant_name.rb +0 -0
  1839. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/file_name.rb +0 -0
  1840. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +0 -0
  1841. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +0 -0
  1842. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/inclusive_language.rb +0 -0
  1843. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/method_name.rb +0 -0
  1844. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/method_parameter_name.rb +0 -0
  1845. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/variable_name.rb +0 -0
  1846. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/naming/variable_number.rb +0 -0
  1847. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/compound_hash.rb +0 -0
  1848. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/eval.rb +0 -0
  1849. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/json_load.rb +0 -0
  1850. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/marshal_load.rb +0 -0
  1851. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/open.rb +0 -0
  1852. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/security/yaml_load.rb +0 -0
  1853. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/severity.rb +0 -0
  1854. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/access_modifier_declarations.rb +0 -0
  1855. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/accessor_grouping.rb +0 -0
  1856. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/ambiguous_endless_method_definition.rb +0 -0
  1857. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/arguments_forwarding.rb +0 -0
  1858. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/array_coercion.rb +0 -0
  1859. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/array_join.rb +0 -0
  1860. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/ascii_comments.rb +0 -0
  1861. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/attr.rb +0 -0
  1862. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/auto_resource_cleanup.rb +0 -0
  1863. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/bare_percent_literals.rb +0 -0
  1864. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/begin_block.rb +0 -0
  1865. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +0 -0
  1866. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/bisected_attr_accessor.rb +0 -0
  1867. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/bitwise_predicate.rb +0 -0
  1868. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/block_comments.rb +0 -0
  1869. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/case_like_if.rb +0 -0
  1870. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/class_check.rb +0 -0
  1871. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/class_methods.rb +0 -0
  1872. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/class_vars.rb +0 -0
  1873. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/collection_compact.rb +0 -0
  1874. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/collection_methods.rb +0 -0
  1875. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/collection_querying.rb +0 -0
  1876. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/colon_method_definition.rb +0 -0
  1877. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/combinable_defined.rb +0 -0
  1878. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/command_literal.rb +0 -0
  1879. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/comment_annotation.rb +0 -0
  1880. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/commented_keyword.rb +0 -0
  1881. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/comparable_between.rb +0 -0
  1882. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/data_inheritance.rb +0 -0
  1883. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/def_with_parentheses.rb +0 -0
  1884. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/dir.rb +0 -0
  1885. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/dir_empty.rb +0 -0
  1886. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/documentation.rb +0 -0
  1887. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/documentation_method.rb +0 -0
  1888. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/double_cop_disable_directive.rb +0 -0
  1889. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/double_negation.rb +0 -0
  1890. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/each_for_simple_loop.rb +0 -0
  1891. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/each_with_object.rb +0 -0
  1892. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_block_parameter.rb +0 -0
  1893. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_case_condition.rb +0 -0
  1894. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_class_definition.rb +0 -0
  1895. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_else.rb +0 -0
  1896. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_heredoc.rb +0 -0
  1897. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_lambda_parameter.rb +0 -0
  1898. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_literal.rb +0 -0
  1899. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_method.rb +0 -0
  1900. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/empty_string_inside_interpolation.rb +0 -0
  1901. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/encoding.rb +0 -0
  1902. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/end_block.rb +0 -0
  1903. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/endless_method.rb +0 -0
  1904. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/env_home.rb +0 -0
  1905. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/eval_with_location.rb +0 -0
  1906. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/even_odd.rb +0 -0
  1907. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/exact_regexp_match.rb +0 -0
  1908. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/expand_path_arguments.rb +0 -0
  1909. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/explicit_block_argument.rb +0 -0
  1910. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/exponential_notation.rb +0 -0
  1911. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/file_empty.rb +0 -0
  1912. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/file_null.rb +0 -0
  1913. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/file_open.rb +0 -0
  1914. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/file_read.rb +0 -0
  1915. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/file_touch.rb +0 -0
  1916. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/float_division.rb +0 -0
  1917. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/for.rb +0 -0
  1918. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/format_string_token.rb +0 -0
  1919. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/frozen_string_literal_comment.rb +0 -0
  1920. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/global_std_stream.rb +0 -0
  1921. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/global_vars.rb +0 -0
  1922. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/guard_clause.rb +0 -0
  1923. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_as_last_array_item.rb +0 -0
  1924. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_each_methods.rb +0 -0
  1925. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_except.rb +0 -0
  1926. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_fetch_chain.rb +0 -0
  1927. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_like_case.rb +0 -0
  1928. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_syntax.rb +0 -0
  1929. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_transform_keys.rb +0 -0
  1930. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/hash_transform_values.rb +0 -0
  1931. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/identical_conditional_branches.rb +0 -0
  1932. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +0 -0
  1933. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +0 -0
  1934. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/if_with_semicolon.rb +0 -0
  1935. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/implicit_runtime_error.rb +0 -0
  1936. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/in_pattern_then.rb +0 -0
  1937. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/infinite_loop.rb +0 -0
  1938. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/inline_comment.rb +0 -0
  1939. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/inverse_methods.rb +0 -0
  1940. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/invertible_unless_condition.rb +0 -0
  1941. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/ip_addresses.rb +0 -0
  1942. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/it_assignment.rb +0 -0
  1943. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/it_block_parameter.rb +0 -0
  1944. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/keyword_arguments_merging.rb +0 -0
  1945. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/keyword_parameters_order.rb +0 -0
  1946. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/lambda.rb +0 -0
  1947. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/lambda_call.rb +0 -0
  1948. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/line_end_concatenation.rb +0 -0
  1949. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +0 -0
  1950. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/map_into_array.rb +0 -0
  1951. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/map_join.rb +0 -0
  1952. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/map_to_hash.rb +0 -0
  1953. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/map_to_set.rb +0 -0
  1954. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +0 -0
  1955. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +0 -0
  1956. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +0 -0
  1957. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +0 -0
  1958. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_called_on_do_end_block.rb +0 -0
  1959. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/method_def_parentheses.rb +0 -0
  1960. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/min_max.rb +0 -0
  1961. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/missing_else.rb +0 -0
  1962. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/missing_respond_to_missing.rb +0 -0
  1963. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/mixin_grouping.rb +0 -0
  1964. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/mixin_usage.rb +0 -0
  1965. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/module_function.rb +0 -0
  1966. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_block_chain.rb +0 -0
  1967. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_if_modifier.rb +0 -0
  1968. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_if_then.rb +0 -0
  1969. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_in_pattern_then.rb +0 -0
  1970. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_memoization.rb +0 -0
  1971. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_method_signature.rb +0 -0
  1972. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_ternary_operator.rb +0 -0
  1973. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiline_when_then.rb +0 -0
  1974. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/multiple_comparison.rb +0 -0
  1975. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/negated_if.rb +0 -0
  1976. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/negated_if_else_condition.rb +0 -0
  1977. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/negated_unless.rb +0 -0
  1978. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/negated_while.rb +0 -0
  1979. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/negative_array_index.rb +0 -0
  1980. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nested_file_dirname.rb +0 -0
  1981. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nested_modifier.rb +0 -0
  1982. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nested_parenthesized_calls.rb +0 -0
  1983. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nested_ternary_operator.rb +0 -0
  1984. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/next.rb +0 -0
  1985. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nil_comparison.rb +0 -0
  1986. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/nil_lambda.rb +0 -0
  1987. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/non_nil_check.rb +0 -0
  1988. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/not.rb +0 -0
  1989. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/numbered_parameters.rb +0 -0
  1990. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/numbered_parameters_limit.rb +0 -0
  1991. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/numeric_literal_prefix.rb +0 -0
  1992. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/numeric_literals.rb +0 -0
  1993. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/numeric_predicate.rb +0 -0
  1994. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/object_then.rb +0 -0
  1995. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/one_class_per_file.rb +0 -0
  1996. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/one_line_conditional.rb +0 -0
  1997. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/open_struct_use.rb +0 -0
  1998. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/operator_method_call.rb +0 -0
  1999. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/option_hash.rb +0 -0
  2000. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/optional_arguments.rb +0 -0
  2001. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/optional_boolean_parameter.rb +0 -0
  2002. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/or_assignment.rb +0 -0
  2003. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/parentheses_around_condition.rb +0 -0
  2004. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/partition_instead_of_double_select.rb +0 -0
  2005. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/percent_literal_delimiters.rb +0 -0
  2006. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/percent_q_literals.rb +0 -0
  2007. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/perl_backrefs.rb +0 -0
  2008. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/predicate_with_kind.rb +0 -0
  2009. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/preferred_hash_methods.rb +0 -0
  2010. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/proc.rb +0 -0
  2011. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/quoted_symbols.rb +0 -0
  2012. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/raise_args.rb +0 -0
  2013. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/random_with_offset.rb +0 -0
  2014. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_argument.rb +0 -0
  2015. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_array_flatten.rb +0 -0
  2016. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_assignment.rb +0 -0
  2017. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_begin.rb +0 -0
  2018. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_capital_w.rb +0 -0
  2019. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_condition.rb +0 -0
  2020. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_conditional.rb +0 -0
  2021. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_current_directory_in_path.rb +0 -0
  2022. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +0 -0
  2023. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_each.rb +0 -0
  2024. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_exception.rb +0 -0
  2025. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_fetch_block.rb +0 -0
  2026. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +0 -0
  2027. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_filter_chain.rb +0 -0
  2028. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_freeze.rb +0 -0
  2029. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb +0 -0
  2030. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_initialize.rb +0 -0
  2031. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_interpolation.rb +0 -0
  2032. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb +0 -0
  2033. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_line_continuation.rb +0 -0
  2034. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_min_max_by.rb +0 -0
  2035. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_parentheses.rb +0 -0
  2036. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_percent_q.rb +0 -0
  2037. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_regexp_argument.rb +0 -0
  2038. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_regexp_character_class.rb +0 -0
  2039. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_regexp_escape.rb +0 -0
  2040. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_return.rb +0 -0
  2041. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_self_assignment.rb +0 -0
  2042. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +0 -0
  2043. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_sort.rb +0 -0
  2044. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_sort_by.rb +0 -0
  2045. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_string_escape.rb +0 -0
  2046. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/redundant_struct_keyword_init.rb +0 -0
  2047. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/require_order.rb +0 -0
  2048. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/rescue_standard_error.rb +0 -0
  2049. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/return_nil.rb +0 -0
  2050. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb +0 -0
  2051. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/reverse_find.rb +0 -0
  2052. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/safe_navigation.rb +0 -0
  2053. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/safe_navigation_chain_length.rb +0 -0
  2054. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/sample.rb +0 -0
  2055. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/select_by_kind.rb +0 -0
  2056. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/select_by_range.rb +0 -0
  2057. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/select_by_regexp.rb +0 -0
  2058. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/send.rb +0 -0
  2059. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/send_with_literal_method_name.rb +0 -0
  2060. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/signal_exception.rb +0 -0
  2061. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/single_argument_dig.rb +0 -0
  2062. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/single_line_block_params.rb +0 -0
  2063. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/single_line_do_end_block.rb +0 -0
  2064. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/single_line_methods.rb +0 -0
  2065. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/slicing_with_range.rb +0 -0
  2066. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/special_global_vars.rb +0 -0
  2067. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +0 -0
  2068. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/static_class.rb +0 -0
  2069. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/stderr_puts.rb +0 -0
  2070. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_chars.rb +0 -0
  2071. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_concatenation.rb +0 -0
  2072. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_hash_keys.rb +0 -0
  2073. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_literals.rb +0 -0
  2074. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_literals_in_interpolation.rb +0 -0
  2075. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/string_methods.rb +0 -0
  2076. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/strip.rb +0 -0
  2077. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/super_arguments.rb +0 -0
  2078. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/super_with_args_parentheses.rb +0 -0
  2079. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/swap_values.rb +0 -0
  2080. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/symbol_array.rb +0 -0
  2081. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/symbol_literal.rb +0 -0
  2082. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/tally_method.rb +0 -0
  2083. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/ternary_parentheses.rb +0 -0
  2084. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_body_on_class.rb +0 -0
  2085. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +0 -0
  2086. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_body_on_module.rb +0 -0
  2087. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +0 -0
  2088. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +0 -0
  2089. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +0 -0
  2090. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +0 -0
  2091. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_method_end_statement.rb +0 -0
  2092. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trailing_underscore_variable.rb +0 -0
  2093. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/trivial_accessors.rb +0 -0
  2094. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/unless_else.rb +0 -0
  2095. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/unpack_first.rb +0 -0
  2096. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/variable_interpolation.rb +0 -0
  2097. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/when_then.rb +0 -0
  2098. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/yaml_file_read.rb +0 -0
  2099. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/style/yoda_expression.rb +0 -0
  2100. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/util.rb +0 -0
  2101. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/utils/format_string.rb +0 -0
  2102. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/assignment.rb +0 -0
  2103. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/branch.rb +0 -0
  2104. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/branchable.rb +0 -0
  2105. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/reference.rb +0 -0
  2106. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/scope.rb +0 -0
  2107. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/variable.rb +0 -0
  2108. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force/variable_table.rb +0 -0
  2109. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cop/variable_force.rb +0 -0
  2110. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/cops_documentation_generator.rb +0 -0
  2111. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/core_ext/string.rb +0 -0
  2112. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/directive_comment.rb +0 -0
  2113. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/error.rb +0 -0
  2114. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ext/comment.rb +0 -0
  2115. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ext/processed_source.rb +0 -0
  2116. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ext/range.rb +0 -0
  2117. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ext/regexp_node.rb +0 -0
  2118. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/ext/regexp_parser.rb +0 -0
  2119. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/feature_loader.rb +0 -0
  2120. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/file_finder.rb +0 -0
  2121. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/auto_gen_config_formatter.rb +0 -0
  2122. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/base_formatter.rb +0 -0
  2123. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/clang_style_formatter.rb +0 -0
  2124. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/colorizable.rb +0 -0
  2125. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/emacs_style_formatter.rb +0 -0
  2126. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/file_list_formatter.rb +0 -0
  2127. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/formatter_set.rb +0 -0
  2128. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/fuubar_style_formatter.rb +0 -0
  2129. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/github_actions_formatter.rb +0 -0
  2130. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/html_formatter.rb +0 -0
  2131. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/json_formatter.rb +0 -0
  2132. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/junit_formatter.rb +0 -0
  2133. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/markdown_formatter.rb +0 -0
  2134. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/offense_count_formatter.rb +0 -0
  2135. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/pacman_formatter.rb +0 -0
  2136. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/progress_formatter.rb +0 -0
  2137. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/quiet_formatter.rb +0 -0
  2138. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/simple_text_formatter.rb +0 -0
  2139. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/tap_formatter.rb +0 -0
  2140. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/text_util.rb +0 -0
  2141. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter/worst_offenders_formatter.rb +0 -0
  2142. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/formatter.rb +0 -0
  2143. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lockfile.rb +0 -0
  2144. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/diagnostic.rb +0 -0
  2145. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/disable_comment_edits.rb +0 -0
  2146. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/logger.rb +0 -0
  2147. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/routes.rb +0 -0
  2148. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/server.rb +0 -0
  2149. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/severity.rb +0 -0
  2150. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp/stdin_runner.rb +0 -0
  2151. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/lsp.rb +0 -0
  2152. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/magic_comment.rb +0 -0
  2153. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/mcp/server.rb +0 -0
  2154. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/name_similarity.rb +0 -0
  2155. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/path_util.rb +0 -0
  2156. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/pending_cops_reporter.rb +0 -0
  2157. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/platform.rb +0 -0
  2158. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/plugin/configuration_integrator.rb +0 -0
  2159. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/plugin/load_error.rb +0 -0
  2160. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/plugin/loader.rb +0 -0
  2161. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/plugin/not_supported_error.rb +0 -0
  2162. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/plugin.rb +0 -0
  2163. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/rake_task.rb +0 -0
  2164. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/remote_config.rb +0 -0
  2165. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/result_cache.rb +0 -0
  2166. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/rspec/cop_helper.rb +0 -0
  2167. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/rspec/expect_offense.rb +0 -0
  2168. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/rspec/parallel_formatter.rb +0 -0
  2169. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/rspec/support.rb +0 -0
  2170. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/cache.rb +0 -0
  2171. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/cli.rb +0 -0
  2172. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/base.rb +0 -0
  2173. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/exec.rb +0 -0
  2174. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/restart.rb +0 -0
  2175. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/start.rb +0 -0
  2176. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/status.rb +0 -0
  2177. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command/stop.rb +0 -0
  2178. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/client_command.rb +0 -0
  2179. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/errors.rb +0 -0
  2180. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/helper.rb +0 -0
  2181. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/server_command/base.rb +0 -0
  2182. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/server_command/exec.rb +0 -0
  2183. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/server_command/stop.rb +0 -0
  2184. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/server_command.rb +0 -0
  2185. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server/socket_reader.rb +0 -0
  2186. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/server.rb +0 -0
  2187. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/string_interpreter.rb +0 -0
  2188. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/target_ruby.rb +0 -0
  2189. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/util.rb +0 -0
  2190. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/warning.rb +0 -0
  2191. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/rubocop/yaml_duplication_checker.rb +0 -0
  2192. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/ruby_lsp/rubocop/addon.rb +0 -0
  2193. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-1.86.1 → rubocop-1.88.0}/lib/ruby_lsp/rubocop/runtime_adapter.rb +0 -0
  2194. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/LICENSE.txt +0 -0
  2195. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/README.md +0 -0
  2196. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/config/obsoletion.yml +0 -0
  2197. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/active_record_helper.rb +0 -0
  2198. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/active_record_migrations_helper.rb +0 -0
  2199. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/class_send_node_helper.rb +0 -0
  2200. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/enforce_superclass.rb +0 -0
  2201. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/index_method.rb +0 -0
  2202. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/migrations_helper.rb +0 -0
  2203. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/mixin/routes_helper.rb +0 -0
  2204. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/action_controller_flash_before_render.rb +0 -0
  2205. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/action_controller_test_case.rb +0 -0
  2206. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/action_order.rb +0 -0
  2207. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/active_record_aliases.rb +0 -0
  2208. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/active_record_callbacks_order.rb +0 -0
  2209. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/active_record_override.rb +0 -0
  2210. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/active_support_aliases.rb +0 -0
  2211. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/active_support_on_load.rb +0 -0
  2212. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/add_column_index.rb +0 -0
  2213. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/after_commit_override.rb +0 -0
  2214. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/application_controller.rb +0 -0
  2215. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/application_job.rb +0 -0
  2216. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/application_mailer.rb +0 -0
  2217. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/application_record.rb +0 -0
  2218. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/arel_star.rb +0 -0
  2219. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/assert_not.rb +0 -0
  2220. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/attribute_default_block_value.rb +0 -0
  2221. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/belongs_to.rb +0 -0
  2222. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/blank.rb +0 -0
  2223. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/bulk_change_table.rb +0 -0
  2224. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/compact_blank.rb +0 -0
  2225. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/content_tag.rb +0 -0
  2226. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/create_table_with_timestamps.rb +0 -0
  2227. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/dangerous_column_names.rb +0 -0
  2228. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/date.rb +0 -0
  2229. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/default_scope.rb +0 -0
  2230. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/delegate.rb +0 -0
  2231. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/delegate_allow_blank.rb +0 -0
  2232. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/deprecated_active_model_errors_methods.rb +0 -0
  2233. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/dot_separated_keys.rb +0 -0
  2234. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/duplicate_association.rb +0 -0
  2235. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/duplicate_scope.rb +0 -0
  2236. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/duration_arithmetic.rb +0 -0
  2237. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/dynamic_find_by.rb +0 -0
  2238. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/eager_evaluation_log_message.rb +0 -0
  2239. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/enum_hash.rb +0 -0
  2240. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/enum_syntax.rb +0 -0
  2241. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/enum_uniqueness.rb +0 -0
  2242. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/env_local.rb +0 -0
  2243. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/environment_comparison.rb +0 -0
  2244. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/environment_variable_access.rb +0 -0
  2245. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/exit.rb +0 -0
  2246. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/expanded_date_range.rb +0 -0
  2247. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/file_path.rb +0 -0
  2248. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/find_by.rb +0 -0
  2249. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/find_by_id.rb +0 -0
  2250. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/find_by_or_assignment_memoization.rb +0 -0
  2251. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/find_each.rb +0 -0
  2252. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/freeze_time.rb +0 -0
  2253. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +0 -0
  2254. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +0 -0
  2255. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/helper_instance_variable.rb +0 -0
  2256. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/http_positional_arguments.rb +0 -0
  2257. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/http_status.rb +0 -0
  2258. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/http_status_name_consistency.rb +0 -0
  2259. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/i18n_lazy_lookup.rb +0 -0
  2260. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/i18n_locale_assignment.rb +0 -0
  2261. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/ignored_columns_assignment.rb +0 -0
  2262. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +0 -0
  2263. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/index_by.rb +0 -0
  2264. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/index_with.rb +0 -0
  2265. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/inquiry.rb +0 -0
  2266. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/inverse_of.rb +0 -0
  2267. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +0 -0
  2268. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/link_to_blank.rb +0 -0
  2269. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/mailer_name.rb +0 -0
  2270. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/match_route.rb +0 -0
  2271. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/migration_class_name.rb +0 -0
  2272. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/multiple_route_paths.rb +0 -0
  2273. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/negate_include.rb +0 -0
  2274. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/order_arguments.rb +0 -0
  2275. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/order_by_id.rb +0 -0
  2276. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/output.rb +0 -0
  2277. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/output_safety.rb +0 -0
  2278. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/pick.rb +0 -0
  2279. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/pluck.rb +0 -0
  2280. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/pluck_id.rb +0 -0
  2281. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/pluck_in_where.rb +0 -0
  2282. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/pluralization_grammar.rb +0 -0
  2283. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/present.rb +0 -0
  2284. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/read_write_attribute.rb +0 -0
  2285. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redirect_back_or_to.rb +0 -0
  2286. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redundant_allow_nil.rb +0 -0
  2287. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redundant_foreign_key.rb +0 -0
  2288. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redundant_presence_validation_on_belongs_to.rb +0 -0
  2289. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +0 -0
  2290. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/redundant_travel_back.rb +0 -0
  2291. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/reflection_class_name.rb +0 -0
  2292. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/refute_methods.rb +0 -0
  2293. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/relative_date_constant.rb +0 -0
  2294. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/render_inline.rb +0 -0
  2295. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/render_plain_text.rb +0 -0
  2296. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/request_referer.rb +0 -0
  2297. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/require_dependency.rb +0 -0
  2298. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/reversible_migration.rb +0 -0
  2299. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/reversible_migration_method_definition.rb +0 -0
  2300. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/root_join_chain.rb +0 -0
  2301. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/root_pathname_methods.rb +0 -0
  2302. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/root_public_path.rb +0 -0
  2303. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/safe_navigation.rb +0 -0
  2304. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/safe_navigation_with_blank.rb +0 -0
  2305. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/schema_comment.rb +0 -0
  2306. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/scope_args.rb +0 -0
  2307. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/short_i18n.rb +0 -0
  2308. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/skips_model_validations.rb +0 -0
  2309. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/squished_sql_heredocs.rb +0 -0
  2310. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/strip_heredoc.rb +0 -0
  2311. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/table_name_assignment.rb +0 -0
  2312. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/three_state_boolean_column.rb +0 -0
  2313. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/time_zone.rb +0 -0
  2314. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/time_zone_assignment.rb +0 -0
  2315. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/to_formatted_s.rb +0 -0
  2316. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/to_s_with_argument.rb +0 -0
  2317. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/top_level_hash_with_indifferent_access.rb +0 -0
  2318. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/transaction_exit_statement.rb +0 -0
  2319. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/uniq_before_pluck.rb +0 -0
  2320. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/unique_validation_without_index.rb +0 -0
  2321. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/unused_ignored_columns.rb +0 -0
  2322. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/unused_render_content.rb +0 -0
  2323. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/validation.rb +0 -0
  2324. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_equals.rb +0 -0
  2325. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_exists.rb +0 -0
  2326. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_missing.rb +0 -0
  2327. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_not.rb +0 -0
  2328. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_not_with_multiple_conditions.rb +0 -0
  2329. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails/where_range.rb +0 -0
  2330. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/cop/rails_cops.rb +0 -0
  2331. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/rails/migration_file_skippable.rb +0 -0
  2332. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/rails/plugin.rb +0 -0
  2333. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/rails/schema_loader/schema.rb +0 -0
  2334. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/rails/schema_loader.rb +0 -0
  2335. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop/rails.rb +0 -0
  2336. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rails-2.34.3 → rubocop-rails-2.35.5}/lib/rubocop-rails.rb +0 -0
  2337. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/CODE_OF_CONDUCT.md +0 -0
  2338. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/MIT-LICENSE.md +0 -0
  2339. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/README.md +0 -0
  2340. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/config/obsoletion.yml +0 -0
  2341. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/align_left_let_brace.rb +0 -0
  2342. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/align_right_let_brace.rb +0 -0
  2343. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/any_instance.rb +0 -0
  2344. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/base.rb +0 -0
  2345. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/be.rb +0 -0
  2346. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/be_empty.rb +0 -0
  2347. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/be_eq.rb +0 -0
  2348. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/be_eql.rb +0 -0
  2349. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/be_nil.rb +0 -0
  2350. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/before_after_all.rb +0 -0
  2351. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/change_by_zero.rb +0 -0
  2352. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/class_check.rb +0 -0
  2353. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/describe_class.rb +0 -0
  2354. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/describe_method.rb +0 -0
  2355. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/describe_symbol.rb +0 -0
  2356. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/described_class_module_wrapping.rb +0 -0
  2357. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/dialect.rb +0 -0
  2358. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/duplicated_metadata.rb +0 -0
  2359. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/empty_metadata.rb +0 -0
  2360. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/empty_output.rb +0 -0
  2361. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/eq.rb +0 -0
  2362. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/excessive_docstring_spacing.rb +0 -0
  2363. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/expect_output.rb +0 -0
  2364. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/focus.rb +0 -0
  2365. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/identical_equality_assertion.rb +0 -0
  2366. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/implicit_block_expectation.rb +0 -0
  2367. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/implicit_expect.rb +0 -0
  2368. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/implicit_subject.rb +0 -0
  2369. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/include_examples.rb +0 -0
  2370. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/instance_variable.rb +0 -0
  2371. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/is_expected_specify.rb +0 -0
  2372. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/it_behaves_like.rb +0 -0
  2373. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/leaky_constant_declaration.rb +0 -0
  2374. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/leaky_local_variable.rb +0 -0
  2375. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/match_array.rb +0 -0
  2376. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/message_chain.rb +0 -0
  2377. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/message_expectation.rb +0 -0
  2378. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/message_spies.rb +0 -0
  2379. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/metadata_style.rb +0 -0
  2380. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/missing_expectation_target_method.rb +0 -0
  2381. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/comments_help.rb +0 -0
  2382. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/empty_line_separation.rb +0 -0
  2383. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/file_help.rb +0 -0
  2384. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/final_end_location.rb +0 -0
  2385. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/inside_example_group.rb +0 -0
  2386. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/location_help.rb +0 -0
  2387. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/namespace.rb +0 -0
  2388. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/skip_or_pending.rb +0 -0
  2389. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/top_level_group.rb +0 -0
  2390. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/mixin/variable.rb +0 -0
  2391. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/multiple_describes.rb +0 -0
  2392. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/nested_groups.rb +0 -0
  2393. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/not_to_not.rb +0 -0
  2394. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/output.rb +0 -0
  2395. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/pending.rb +0 -0
  2396. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/pending_without_reason.rb +0 -0
  2397. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/receive_counts.rb +0 -0
  2398. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/receive_messages.rb +0 -0
  2399. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/receive_never.rb +0 -0
  2400. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/redundant_predicate_matcher.rb +0 -0
  2401. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/remove_const.rb +0 -0
  2402. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/repeated_subject_call.rb +0 -0
  2403. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/shared_examples.rb +0 -0
  2404. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/single_argument_message_chain.rb +0 -0
  2405. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/sort_metadata.rb +0 -0
  2406. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/spec_file_path_suffix.rb +0 -0
  2407. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/stubbed_mock.rb +0 -0
  2408. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/subject_stub.rb +0 -0
  2409. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/unspecified_exception.rb +0 -0
  2410. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/variable_definition.rb +0 -0
  2411. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/variable_name.rb +0 -0
  2412. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/verified_double_reference.rb +0 -0
  2413. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/cop/rspec/verified_doubles.rb +0 -0
  2414. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/align_let_brace.rb +0 -0
  2415. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/concept.rb +0 -0
  2416. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/config_formatter.rb +0 -0
  2417. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/cop/generator.rb +0 -0
  2418. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/corrector/move_node.rb +0 -0
  2419. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/example.rb +0 -0
  2420. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/example_group.rb +0 -0
  2421. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/hook.rb +0 -0
  2422. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/language.rb +0 -0
  2423. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/node.rb +0 -0
  2424. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/plugin.rb +0 -0
  2425. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/shared_contexts/default_rspec_language_config_context.rb +0 -0
  2426. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec/wording.rb +0 -0
  2427. /data/vendor/bundle/ruby/4.0.0/gems/{rubocop-rspec-3.9.0 → rubocop-rspec-3.10.2}/lib/rubocop/rspec.rb +0 -0
  2428. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/LICENSE +0 -0
  2429. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/docs/errors/NonCaseSwappableValueError.md +0 -0
  2430. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/callback_matcher.rb +0 -0
  2431. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/filter_param_matcher.rb +0 -0
  2432. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/flash_store.rb +0 -0
  2433. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/permit_matcher.rb +0 -0
  2434. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/redirect_to_matcher.rb +0 -0
  2435. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/render_template_matcher.rb +0 -0
  2436. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/rescue_from_matcher.rb +0 -0
  2437. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +0 -0
  2438. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/route_matcher.rb +0 -0
  2439. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/route_params.rb +0 -0
  2440. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/session_store.rb +0 -0
  2441. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/set_flash_matcher.rb +0 -0
  2442. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/set_session_matcher.rb +0 -0
  2443. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller/set_session_or_flash_matcher.rb +0 -0
  2444. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/action_controller.rb +0 -0
  2445. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_changed_value_error.rb +0 -0
  2446. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_does_not_exist_error.rb +0 -0
  2447. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter.rb +0 -0
  2448. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setter_and_validator.rb +0 -0
  2449. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setters.rb +0 -0
  2450. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/attribute_setters_and_validators.rb +0 -0
  2451. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/successful_check.rb +0 -0
  2452. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/allow_value_matcher/successful_setting.rb +0 -0
  2453. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/comparison_matcher.rb +0 -0
  2454. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/disallow_value_matcher.rb +0 -0
  2455. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/errors.rb +0 -0
  2456. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/have_secure_password_matcher.rb +0 -0
  2457. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/even_number_matcher.rb +0 -0
  2458. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/numeric_type_matcher.rb +0 -0
  2459. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/odd_number_matcher.rb +0 -0
  2460. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/only_integer_matcher.rb +0 -0
  2461. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/range_matcher.rb +0 -0
  2462. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers/submatchers.rb +0 -0
  2463. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/numericality_matchers.rb +0 -0
  2464. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/qualifiers/allow_blank.rb +0 -0
  2465. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/qualifiers/allow_nil.rb +0 -0
  2466. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/qualifiers/ignore_interference_by_writer.rb +0 -0
  2467. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/qualifiers/ignoring_interference_by_writer.rb +0 -0
  2468. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/qualifiers.rb +0 -0
  2469. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/validation_matcher/build_description.rb +0 -0
  2470. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model/validation_message_finder.rb +0 -0
  2471. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_model.rb +0 -0
  2472. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb +0 -0
  2473. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/counter_cache_matcher.rb +0 -0
  2474. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/dependent_matcher.rb +0 -0
  2475. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/inverse_of_matcher.rb +0 -0
  2476. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/join_table_matcher.rb +0 -0
  2477. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/model_reflection.rb +0 -0
  2478. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/model_reflector.rb +0 -0
  2479. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/option_verifier.rb +0 -0
  2480. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/order_matcher.rb +0 -0
  2481. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/source_matcher.rb +0 -0
  2482. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers/through_matcher.rb +0 -0
  2483. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/association_matchers.rb +0 -0
  2484. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/encrypt_matcher.rb +0 -0
  2485. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/have_db_column_matcher.rb +0 -0
  2486. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/have_db_index_matcher.rb +0 -0
  2487. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/have_implicit_order_column.rb +0 -0
  2488. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/have_rich_text_matcher.rb +0 -0
  2489. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/have_secure_token_matcher.rb +0 -0
  2490. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/normalize_matcher.rb +0 -0
  2491. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/serialize_matcher.rb +0 -0
  2492. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/uniqueness/model.rb +0 -0
  2493. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/uniqueness/test_model_creator.rb +0 -0
  2494. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record/uniqueness.rb +0 -0
  2495. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/active_record.rb +0 -0
  2496. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/configuration.rb +0 -0
  2497. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/double.rb +0 -0
  2498. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/double_collection.rb +0 -0
  2499. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/double_implementation_registry.rb +0 -0
  2500. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/method_call.rb +0 -0
  2501. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/object_double.rb +0 -0
  2502. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/proxy_implementation.rb +0 -0
  2503. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/stub_implementation.rb +0 -0
  2504. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak/world.rb +0 -0
  2505. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/doublespeak.rb +0 -0
  2506. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/error.rb +0 -0
  2507. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/independent/delegate_method_matcher/target_not_defined_error.rb +0 -0
  2508. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/independent/delegate_method_matcher.rb +0 -0
  2509. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/independent.rb +0 -0
  2510. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/configuration.rb +0 -0
  2511. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/configuration_error.rb +0 -0
  2512. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/inclusion.rb +0 -0
  2513. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/action_controller.rb +0 -0
  2514. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/active_model.rb +0 -0
  2515. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/active_record.rb +0 -0
  2516. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/missing_library.rb +0 -0
  2517. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/rails.rb +0 -0
  2518. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries/routing.rb +0 -0
  2519. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/libraries.rb +0 -0
  2520. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/rails.rb +0 -0
  2521. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/registry.rb +0 -0
  2522. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/active_support_test_case.rb +0 -0
  2523. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/minitest_4.rb +0 -0
  2524. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/minitest_5.rb +0 -0
  2525. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/missing_test_framework.rb +0 -0
  2526. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/rspec.rb +0 -0
  2527. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks/test_unit.rb +0 -0
  2528. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations/test_frameworks.rb +0 -0
  2529. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/integrations.rb +0 -0
  2530. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/matcher_context.rb +0 -0
  2531. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/routing.rb +0 -0
  2532. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/util/word_wrap.rb +0 -0
  2533. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/util.rb +0 -0
  2534. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda/matchers/warn.rb +0 -0
  2535. /data/vendor/bundle/ruby/4.0.0/gems/{shoulda-matchers-7.0.1 → shoulda-matchers-8.0.1}/lib/shoulda-matchers.rb +0 -0
  2536. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/README.md +0 -0
  2537. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/ext/websocket-driver/Makefile +0 -0
  2538. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/ext/websocket-driver/WebsocketMaskService.java +0 -0
  2539. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/ext/websocket-driver/extconf.rb +0 -0
  2540. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/ext/websocket-driver/websocket_mask.c +0 -0
  2541. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/client.rb +0 -0
  2542. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/draft76.rb +0 -0
  2543. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/event_emitter.rb +0 -0
  2544. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/headers.rb +0 -0
  2545. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/hybi/frame.rb +0 -0
  2546. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/hybi/message.rb +0 -0
  2547. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/proxy.rb +0 -0
  2548. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/server.rb +0 -0
  2549. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver/stream_reader.rb +0 -0
  2550. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/driver.rb +0 -0
  2551. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/http/request.rb +0 -0
  2552. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/http/response.rb +0 -0
  2553. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/http.rb +0 -0
  2554. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/mask.rb +0 -0
  2555. /data/vendor/bundle/ruby/4.0.0/gems/{websocket-driver-0.8.0 → websocket-driver-0.8.1}/lib/websocket/websocket_mask.rb +0 -0
  2556. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/MIT-LICENSE +0 -0
  2557. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/core_ext/module.rb +0 -0
  2558. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/internal.rb +0 -0
  2559. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/null_inflector.rb +0 -0
  2560. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/real_mod_name.rb +0 -0
  2561. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/registry/autoloads.rb +0 -0
  2562. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/registry/explicit_namespaces.rb +0 -0
  2563. /data/vendor/bundle/ruby/4.0.0/gems/{zeitwerk-2.7.5 → zeitwerk-2.8.2}/lib/zeitwerk/registry/inceptions.rb +0 -0
@@ -0,0 +1,4004 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # = net/imap.rb
4
+ #
5
+ # Copyright (C) 2000 Shugo Maeda <shugo@ruby-lang.org>
6
+ #
7
+ # This library is distributed under the terms of the Ruby license.
8
+ # You can freely distribute/modify this library.
9
+ #
10
+ # Documentation: Shugo Maeda, with RDoc conversion and overview by William
11
+ # Webber.
12
+ #
13
+ # See Net::IMAP for documentation.
14
+ #
15
+
16
+ require "socket"
17
+ require "monitor"
18
+ require 'net/protocol'
19
+ begin
20
+ require "openssl"
21
+ rescue LoadError
22
+ end
23
+
24
+ module Net
25
+
26
+ # Net::IMAP implements Internet Message Access Protocol (\IMAP) client
27
+ # functionality. The protocol is described
28
+ # in {IMAP4rev1 [RFC3501]}[https://www.rfc-editor.org/rfc/rfc3501]
29
+ # and {IMAP4rev2 [RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051].
30
+ #
31
+ # == \IMAP Overview
32
+ #
33
+ # An \IMAP client connects to a server, and then authenticates
34
+ # itself using either #authenticate or #login. Having
35
+ # authenticated itself, there is a range of commands
36
+ # available to it. Most work with mailboxes, which may be
37
+ # arranged in an hierarchical namespace, and each of which
38
+ # contains zero or more messages. How this is implemented on
39
+ # the server is implementation-dependent; on a UNIX server, it
40
+ # will frequently be implemented as files in mailbox format
41
+ # within a hierarchy of directories.
42
+ #
43
+ # To work on the messages within a mailbox, the client must
44
+ # first select that mailbox, using either #select or #examine
45
+ # (for read-only access). Once the client has successfully
46
+ # selected a mailbox, they enter the +selected+ state, and that
47
+ # mailbox becomes the _current_ mailbox, on which mail-item
48
+ # related commands implicitly operate.
49
+ #
50
+ # === Connection state
51
+ #
52
+ # Once an IMAP connection is established, the connection is in one of four
53
+ # states: <tt>not authenticated</tt>, +authenticated+, +selected+, and
54
+ # +logout+. Most commands are valid only in certain states.
55
+ #
56
+ # See #connection_state.
57
+ #
58
+ # === Sequence numbers and UIDs
59
+ #
60
+ # Messages have two sorts of identifiers: message sequence
61
+ # numbers and UIDs.
62
+ #
63
+ # Message sequence numbers number messages within a mailbox
64
+ # from 1 up to the number of items in the mailbox. If a new
65
+ # message arrives during a session, it receives a sequence
66
+ # number equal to the new size of the mailbox. If messages
67
+ # are expunged from the mailbox, remaining messages have their
68
+ # sequence numbers "shuffled down" to fill the gaps.
69
+ #
70
+ # To avoid sequence number race conditions, servers must not expunge messages
71
+ # when no command is in progress, nor when responding to #fetch, #store, or
72
+ # #search. Expunges _may_ be sent during any other command, including
73
+ # #uid_fetch, #uid_store, and #uid_search. The #noop and #idle commands are
74
+ # both useful for this side-effect: they allow the server to send all mailbox
75
+ # updates, including expunges.
76
+ #
77
+ # UIDs, on the other hand, are permanently guaranteed not to
78
+ # identify another message within the same mailbox, even if
79
+ # the existing message is deleted. UIDs are required to
80
+ # be assigned in ascending (but not necessarily sequential)
81
+ # order within a mailbox; this means that if a non-IMAP client
82
+ # rearranges the order of mail items within a mailbox, the
83
+ # UIDs have to be reassigned. An \IMAP client thus cannot
84
+ # rearrange message orders.
85
+ #
86
+ # === Examples of Usage
87
+ #
88
+ # ==== List sender and subject of all recent messages in the default mailbox
89
+ #
90
+ # imap = Net::IMAP.new('mail.example.com')
91
+ # imap.authenticate('PLAIN', 'joe_user', 'joes_password')
92
+ # imap.examine('INBOX')
93
+ # imap.search(["RECENT"]).each do |message_id|
94
+ # envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
95
+ # puts "#{envelope.from[0].name}: \t#{envelope.subject}"
96
+ # end
97
+ #
98
+ # ==== Move all messages from April 2003 from "Mail/sent-mail" to "Mail/sent-apr03"
99
+ #
100
+ # imap = Net::IMAP.new('mail.example.com')
101
+ # imap.authenticate('PLAIN', 'joe_user', 'joes_password')
102
+ # imap.select('Mail/sent-mail')
103
+ # if not imap.list('Mail/', 'sent-apr03')
104
+ # imap.create('Mail/sent-apr03')
105
+ # end
106
+ # imap.search(["BEFORE", "30-Apr-2003", "SINCE", "1-Apr-2003"]).each do |message_id|
107
+ # imap.copy(message_id, "Mail/sent-apr03")
108
+ # imap.store(message_id, "+FLAGS", [:Deleted])
109
+ # end
110
+ # imap.expunge
111
+ #
112
+ # == Capabilities
113
+ #
114
+ # Most Net::IMAP methods do not _currently_ modify their behaviour according
115
+ # to the server's advertised #capabilities. Users of this class must check
116
+ # that the server is capable of extension commands or command arguments before
117
+ # sending them. Special care should be taken to follow the #capabilities
118
+ # requirements for #starttls, #login, and #authenticate.
119
+ #
120
+ # See #capable?, #auth_capable?, #capabilities, #auth_mechanisms to discover
121
+ # server capabilities. For relevant capability requirements, see the
122
+ # documentation on each \IMAP command.
123
+ #
124
+ # imap = Net::IMAP.new("mail.example.com")
125
+ # imap.capable?(:IMAP4rev1) or raise "Not an IMAP4rev1 server"
126
+ # imap.capable?(:starttls) or raise "Cannot start TLS"
127
+ # imap.starttls
128
+ #
129
+ # if imap.auth_capable?("PLAIN")
130
+ # imap.authenticate "PLAIN", username, password
131
+ # elsif !imap.capability?("LOGINDISABLED")
132
+ # imap.login username, password
133
+ # else
134
+ # raise "No acceptable authentication mechanisms"
135
+ # end
136
+ #
137
+ # # Support for "UTF8=ACCEPT" implies support for "ENABLE"
138
+ # imap.enable :utf8 if imap.capable?("UTF8=ACCEPT")
139
+ #
140
+ # namespaces = imap.namespace if imap.capable?(:namespace)
141
+ # mbox_prefix = namespaces&.personal&.first&.prefix || ""
142
+ # mbox_delim = namespaces&.personal&.first&.delim || "/"
143
+ # mbox_path = prefix + %w[path to my mailbox].join(delim)
144
+ # imap.create mbox_path
145
+ #
146
+ # === Basic IMAP4rev1 capabilities
147
+ #
148
+ # IMAP4rev1 servers must advertise +IMAP4rev1+ in their capabilities list.
149
+ # IMAP4rev1 servers must _implement_ the +STARTTLS+, <tt>AUTH=PLAIN</tt>,
150
+ # and +LOGINDISABLED+ capabilities. See #starttls, #login, and #authenticate
151
+ # for the implications of these capabilities.
152
+ #
153
+ # === Caching +CAPABILITY+ responses
154
+ #
155
+ # Net::IMAP automatically stores and discards capability data according to the
156
+ # the requirements and recommendations in
157
+ # {IMAP4rev2 §6.1.1}[https://www.rfc-editor.org/rfc/rfc9051#section-6.1.1],
158
+ # {§6.2}[https://www.rfc-editor.org/rfc/rfc9051#section-6.2], and
159
+ # {§7.1}[https://www.rfc-editor.org/rfc/rfc9051#section-7.1].
160
+ # Use #capable?, #auth_capable?, or #capabilities to use this cache and avoid
161
+ # sending the #capability command unnecessarily.
162
+ #
163
+ # The server may advertise its initial capabilities using the +CAPABILITY+
164
+ # ResponseCode in a +PREAUTH+ or +OK+ #greeting. When TLS has started
165
+ # (#starttls) and after authentication (#login or #authenticate), the server's
166
+ # capabilities may change and cached capabilities are discarded. The server
167
+ # may send updated capabilities with an +OK+ TaggedResponse to #login or
168
+ # #authenticate, and these will be cached by Net::IMAP. But the
169
+ # TaggedResponse to #starttls MUST be ignored--it is sent before TLS starts
170
+ # and is unprotected.
171
+ #
172
+ # When storing capability values to variables, be careful that they are
173
+ # discarded or reset appropriately, especially following #starttls.
174
+ #
175
+ # === Using IMAP4rev1 extensions
176
+ #
177
+ # See the {IANA IMAP4 capabilities
178
+ # registry}[http://www.iana.org/assignments/imap4-capabilities] for a list of
179
+ # all standard capabilities, and their reference RFCs.
180
+ #
181
+ # IMAP4rev1 servers must not activate behavior that is incompatible with the
182
+ # base specification until an explicit client action invokes a capability,
183
+ # e.g. sending a command or command argument specific to that capability.
184
+ # Servers may send data with backward compatible behavior, such as response
185
+ # codes or mailbox attributes, at any time without client action.
186
+ #
187
+ # Invoking capabilities which are unknown to Net::IMAP may cause unexpected
188
+ # behavior and errors. For example, ResponseParseError is raised when
189
+ # unknown response syntax is received. Invoking commands or command
190
+ # parameters that are unsupported by the server may raise NoResponseError,
191
+ # BadResponseError, or cause other unexpected behavior.
192
+ #
193
+ # Some capabilities must be explicitly activated using the #enable command.
194
+ # See #enable for details.
195
+ #
196
+ # == Thread Safety
197
+ #
198
+ # Net::IMAP supports concurrent threads. For example,
199
+ #
200
+ # imap = Net::IMAP.new("imap.foo.net", "imap2")
201
+ # imap.authenticate("scram-md5", "bar", "password")
202
+ # imap.select("inbox")
203
+ # fetch_thread = Thread.start { imap.fetch(1..-1, "UID") }
204
+ # search_result = imap.search(["BODY", "hello"])
205
+ # fetch_result = fetch_thread.value
206
+ # imap.disconnect
207
+ #
208
+ # This script invokes the FETCH command and the SEARCH command concurrently.
209
+ #
210
+ # When running multiple commands, care must be taken to avoid ambiguity. For
211
+ # example, SEARCH responses are ambiguous about which command they are
212
+ # responding to, so search commands should not run simultaneously, unless the
213
+ # server supports +ESEARCH+ {[RFC4731]}[https://rfc-editor.org/rfc/rfc4731] or
214
+ # IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]. See {RFC9051
215
+ # §5.5}[https://www.rfc-editor.org/rfc/rfc9051.html#section-5.5] for
216
+ # other examples of command sequences which should not be pipelined.
217
+ #
218
+ # == Unbounded memory use
219
+ #
220
+ # Net::IMAP reads server responses in a separate receiver thread per client.
221
+ # Unhandled response data is saved to #responses, and response_handlers run
222
+ # inside the receiver thread. See the list of methods for {handling server
223
+ # responses}[rdoc-ref:Net::IMAP@Handling+server+responses], below.
224
+ #
225
+ # Because the receiver thread continuously reads and saves new responses, some
226
+ # scenarios must be careful to avoid unbounded memory use:
227
+ #
228
+ # * Commands such as #list or #fetch can have an enormous number of responses.
229
+ # * Commands such as #fetch can result in an enormous size per response.
230
+ # * Long-lived connections will gradually accumulate unsolicited server
231
+ # responses, especially +EXISTS+, +FETCH+, and +EXPUNGE+ responses.
232
+ # * A buggy or untrusted server could send inappropriate responses, which
233
+ # could be very numerous, very large, and very rapid.
234
+ #
235
+ # Use paginated or limited versions of commands whenever possible.
236
+ #
237
+ # Use Config#max_response_size to impose a limit on incoming server responses
238
+ # as they are being read. <em>This is especially important for untrusted
239
+ # servers.</em>
240
+ #
241
+ # Use #add_response_handler to handle responses after each one is received.
242
+ # Use the +response_handlers+ argument to ::new to assign response handlers
243
+ # before the receiver thread is started. Use #extract_responses,
244
+ # #clear_responses, or #responses (with a block) to prune responses.
245
+ #
246
+ # == Errors
247
+ #
248
+ # An \IMAP server can send three different types of responses to indicate
249
+ # failure:
250
+ #
251
+ # NO:: the attempted command could not be successfully completed. For
252
+ # instance, the username/password used for logging in are incorrect;
253
+ # the selected mailbox does not exist; etc.
254
+ #
255
+ # BAD:: the request from the client does not follow the server's
256
+ # understanding of the \IMAP protocol. This includes attempting
257
+ # commands from the wrong client state; for instance, attempting
258
+ # to perform a SEARCH command without having SELECTed a current
259
+ # mailbox. It can also signal an internal server
260
+ # failure (such as a disk crash) has occurred.
261
+ #
262
+ # BYE:: the server is saying goodbye. This can be part of a normal
263
+ # logout sequence, and can be used as part of a login sequence
264
+ # to indicate that the server is (for some reason) unwilling
265
+ # to accept your connection. As a response to any other command,
266
+ # it indicates either that the server is shutting down, or that
267
+ # the server is timing out the client connection due to inactivity.
268
+ #
269
+ # These three error response are represented by the errors
270
+ # Net::IMAP::NoResponseError, Net::IMAP::BadResponseError, and
271
+ # Net::IMAP::ByeResponseError, all of which are subclasses of
272
+ # Net::IMAP::ResponseError. Essentially, all methods that involve
273
+ # sending a request to the server can generate one of these errors.
274
+ # Only the most pertinent instances have been documented below.
275
+ #
276
+ # Because the IMAP class uses Sockets for communication, its methods
277
+ # are also susceptible to the various errors that can occur when
278
+ # working with sockets. These are generally represented as
279
+ # Errno errors. For instance, any method that involves sending a
280
+ # request to the server and/or receiving a response from it could
281
+ # raise an Errno::EPIPE error if the network connection unexpectedly
282
+ # goes down. See the socket(7), ip(7), tcp(7), socket(2), connect(2),
283
+ # and associated man pages.
284
+ #
285
+ # Finally, a Net::IMAP::DataFormatError is thrown if low-level data
286
+ # is found to be in an incorrect format (for instance, when converting
287
+ # between UTF-8 and UTF-16), and Net::IMAP::ResponseParseError is
288
+ # thrown if a server response is non-parseable.
289
+ #
290
+ # == What's here?
291
+ #
292
+ # * {Connection control}[rdoc-ref:Net::IMAP@Connection+control+methods]
293
+ # * {Server capabilities}[rdoc-ref:Net::IMAP@Server+capabilities]
294
+ # * {Handling server responses}[rdoc-ref:Net::IMAP@Handling+server+responses]
295
+ # * {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands]
296
+ # * {for any state}[rdoc-ref:Net::IMAP@Any+state]
297
+ # * {for the "not authenticated" state}[rdoc-ref:Net::IMAP@Not+Authenticated+state]
298
+ # * {for the "authenticated" state}[rdoc-ref:Net::IMAP@Authenticated+state]
299
+ # * {for the "selected" state}[rdoc-ref:Net::IMAP@Selected+state]
300
+ # * {for the "logout" state}[rdoc-ref:Net::IMAP@Logout+state]
301
+ # * {IMAP extension support}[rdoc-ref:Net::IMAP@IMAP+extension+support]
302
+ #
303
+ # === Connection control methods
304
+ #
305
+ # - Net::IMAP.new: Creates a new \IMAP client which connects immediately and
306
+ # waits for a successful server greeting before the method returns.
307
+ # - #connection_state: Returns the connection state.
308
+ # - #starttls: Asks the server to upgrade a clear-text connection to use TLS.
309
+ # - #logout: Tells the server to end the session. Enters the +logout+ state.
310
+ # - #disconnect: Disconnects the connection (without sending #logout first).
311
+ # - #disconnected?: True if the connection has been closed.
312
+ #
313
+ # === Server capabilities
314
+ #
315
+ # - #capable?: Returns whether the server supports a given capability.
316
+ # - #capabilities: Returns the server's capabilities as an array of strings.
317
+ # - #auth_capable?: Returns whether the server advertises support for a given
318
+ # SASL mechanism, for use with #authenticate.
319
+ # - #auth_mechanisms: Returns the #authenticate SASL mechanisms which
320
+ # the server claims to support as an array of strings.
321
+ # - #clear_cached_capabilities: Clears cached capabilities.
322
+ #
323
+ # <em>The capabilities cache is automatically cleared after completing
324
+ # #starttls, #login, or #authenticate.</em>
325
+ # - #capability: Sends the +CAPABILITY+ command and returns the #capabilities.
326
+ #
327
+ # <em>In general, #capable? should be used rather than explicitly sending a
328
+ # +CAPABILITY+ command to the server.</em>
329
+ #
330
+ # === Handling server responses
331
+ #
332
+ # - #greeting: The server's initial untagged response, which can indicate a
333
+ # pre-authenticated connection.
334
+ # - #responses: Yields unhandled UntaggedResponse#data and <em>non-+nil+</em>
335
+ # ResponseCode#data.
336
+ # - #extract_responses: Removes and returns the responses for which the block
337
+ # returns a true value.
338
+ # - #clear_responses: Deletes unhandled data from #responses and returns it.
339
+ # - #add_response_handler: Add a block to be called inside the receiver thread
340
+ # with every server response.
341
+ # - #response_handlers: Returns the list of response handlers.
342
+ # - #remove_response_handler: Remove a previously added response handler.
343
+ #
344
+ # === Core \IMAP commands
345
+ #
346
+ # The following commands are defined either by
347
+ # the [IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501]] base specification, or
348
+ # by one of the following extensions:
349
+ # [IDLE[https://www.rfc-editor.org/rfc/rfc2177]],
350
+ # [NAMESPACE[https://www.rfc-editor.org/rfc/rfc2342]],
351
+ # [UNSELECT[https://www.rfc-editor.org/rfc/rfc3691]],
352
+ # [ENABLE[https://www.rfc-editor.org/rfc/rfc5161]],
353
+ # [MOVE[https://www.rfc-editor.org/rfc/rfc6851]].
354
+ # These extensions are widely supported by modern IMAP4rev1 servers and have
355
+ # all been integrated into [IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051]].
356
+ # <em>*NOTE:* Net::IMAP doesn't support IMAP4rev2 yet.</em>
357
+ #
358
+ # ==== Any state
359
+ #
360
+ # - #capability: Returns the server's capabilities as an array of strings.
361
+ #
362
+ # <em>In general,</em> #capable? <em>should be used rather than explicitly
363
+ # sending a +CAPABILITY+ command to the server.</em>
364
+ # - #noop: Allows the server to send unsolicited untagged #responses.
365
+ # - #logout: Tells the server to end the session. Enters the +logout+ state.
366
+ #
367
+ # ==== Not Authenticated state
368
+ #
369
+ # In addition to the commands for any state, the following commands are valid
370
+ # in the +not_authenticated+ state:
371
+ #
372
+ # - #starttls: Upgrades a clear-text connection to use TLS.
373
+ #
374
+ # <em>Requires the +STARTTLS+ capability.</em>
375
+ # - #authenticate: Identifies the client to the server using the given
376
+ # {SASL mechanism}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml]
377
+ # and credentials. Enters the +authenticated+ state.
378
+ #
379
+ # <em>The server should list <tt>"AUTH=#{mechanism}"</tt> capabilities for
380
+ # supported mechanisms.</em>
381
+ # - #login: Identifies the client to the server using a plain text password.
382
+ # Using #authenticate is preferred. Enters the +authenticated+ state.
383
+ #
384
+ # <em>The +LOGINDISABLED+ capability</em> <b>must NOT</b> <em>be listed.</em>
385
+ #
386
+ # ==== Authenticated state
387
+ #
388
+ # In addition to the commands for any state, the following commands are valid
389
+ # in the +authenticated+ state:
390
+ #
391
+ # - #enable: Enables backwards incompatible server extensions.
392
+ # <em>Requires the +ENABLE+ or +IMAP4rev2+ capability.</em>
393
+ # - #select: Open a mailbox and enter the +selected+ state.
394
+ # - #examine: Open a mailbox read-only, and enter the +selected+ state.
395
+ # - #create: Creates a new mailbox.
396
+ # - #delete: Permanently remove a mailbox.
397
+ # - #rename: Change the name of a mailbox.
398
+ # - #subscribe: Adds a mailbox to the "subscribed" set.
399
+ # - #unsubscribe: Removes a mailbox from the "subscribed" set.
400
+ # - #list: Returns names and attributes of mailboxes matching a given pattern.
401
+ # - #namespace: Returns mailbox namespaces, with path prefixes and delimiters.
402
+ # <em>Requires the +NAMESPACE+ or +IMAP4rev2+ capability.</em>
403
+ # - #status: Returns mailbox information, e.g. message count, unseen message
404
+ # count, +UIDVALIDITY+ and +UIDNEXT+.
405
+ # - #append: Appends a message to the end of a mailbox.
406
+ # - #idle: Allows the server to send updates to the client, without the client
407
+ # needing to poll using #noop.
408
+ # <em>Requires the +IDLE+ or +IMAP4rev2+ capability.</em>
409
+ # - *Obsolete* #lsub: <em>Replaced by <tt>LIST-EXTENDED</tt> and removed from
410
+ # +IMAP4rev2+.</em> Lists mailboxes in the "subscribed" set.
411
+ #
412
+ # <em>*Note:* Net::IMAP hasn't implemented <tt>LIST-EXTENDED</tt> yet.</em>
413
+ #
414
+ # ==== Selected state
415
+ #
416
+ # In addition to the commands for any state and the +authenticated+
417
+ # commands, the following commands are valid in the +selected+ state:
418
+ #
419
+ # - #close: Closes the mailbox and returns to the +authenticated+ state,
420
+ # expunging deleted messages, unless the mailbox was opened as read-only.
421
+ # - #unselect: Closes the mailbox and returns to the +authenticated+ state,
422
+ # without expunging any messages.
423
+ # <em>Requires the +UNSELECT+ or +IMAP4rev2+ capability.</em>
424
+ # - #expunge: Permanently removes messages which have the Deleted flag set.
425
+ # - #uid_expunge: Restricts expunge to only remove the specified UIDs.
426
+ # <em>Requires the +UIDPLUS+ or +IMAP4rev2+ capability.</em>
427
+ # - #search, #uid_search: Returns sequence numbers or UIDs of messages that
428
+ # match the given searching criteria.
429
+ # - #fetch, #uid_fetch: Returns data associated with a set of messages,
430
+ # specified by sequence number or UID.
431
+ # - #store, #uid_store: Alters a message's flags.
432
+ # - #copy, #uid_copy: Copies the specified messages to the end of the
433
+ # specified destination mailbox.
434
+ # - #move, #uid_move: Moves the specified messages to the end of the
435
+ # specified destination mailbox, expunging them from the current mailbox.
436
+ # <em>Requires the +MOVE+ or +IMAP4rev2+ capability.</em>
437
+ # - #check: <em>*Obsolete:* removed from +IMAP4rev2+.</em>
438
+ # Can be replaced with #noop or #idle.
439
+ #
440
+ # ==== Logout state
441
+ #
442
+ # No \IMAP commands are valid in the +logout+ state. If the socket is still
443
+ # open, Net::IMAP will close it after receiving server confirmation.
444
+ # Exceptions will be raised by \IMAP commands that have already started and
445
+ # are waiting for a response, as well as any that are called after logout.
446
+ #
447
+ # === \IMAP extension support
448
+ #
449
+ # ==== RFC9051: +IMAP4rev2+
450
+ #
451
+ # Although IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] is not supported
452
+ # yet, Net::IMAP supports several extensions that have been folded into it:
453
+ # +ENABLE+, +IDLE+, +LITERAL-+, +MOVE+, +NAMESPACE+, +SASL-IR+, +UIDPLUS+,
454
+ # +UNSELECT+, <tt>STATUS=SIZE</tt>, and the fetch side of +BINARY+.
455
+ # Commands for these extensions are listed with the {Core IMAP
456
+ # commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands], above.
457
+ #
458
+ # >>>
459
+ # <em>The following are folded into +IMAP4rev2+ but are currently
460
+ # unsupported or incompletely supported by</em> Net::IMAP<em>: RFC4466
461
+ # extensions, +SEARCHRES+, +LIST-EXTENDED+, +LIST-STATUS+,
462
+ # and +SPECIAL-USE+.</em>
463
+ #
464
+ # ==== RFC2087: +QUOTA+
465
+ # +NOTE:+ Only the +STORAGE+ quota resource type is currently supported.
466
+ # - Obsoleted by <tt>QUOTA=RES-*</tt> [RFC9208[https://www.rfc-editor.org/rfc/rfc9208]],
467
+ # although the commands are backward compatible.
468
+ # - #getquota: returns the resource usage and limits for a quota root
469
+ # - #getquotaroot: returns the list of quota roots for a mailbox, as well as
470
+ # their resource usage and limits.
471
+ # - #setquota: sets the resource limits for a given quota root.
472
+ #
473
+ # ==== RFC2177: +IDLE+
474
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
475
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
476
+ # - #idle: Allows the server to send updates to the client, without the client
477
+ # needing to poll using #noop.
478
+ #
479
+ # ==== RFC2342: +NAMESPACE+
480
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
481
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
482
+ # - #namespace: Returns mailbox namespaces, with path prefixes and delimiters.
483
+ #
484
+ # ==== RFC2971: +ID+
485
+ # - #id: exchanges client and server implementation information.
486
+ #
487
+ # ==== RFC3516: +BINARY+
488
+ # The fetch side of +BINARY+ has been folded into
489
+ # IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051].
490
+ # - Updates #fetch and #uid_fetch with the +BINARY+, +BINARY.PEEK+, and
491
+ # +BINARY.SIZE+ items. See FetchData#binary and FetchData#binary_size.
492
+ # - Updates #append to allow binary messages containing +NULL+ bytes.
493
+ #
494
+ # ==== RFC3691: +UNSELECT+
495
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
496
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
497
+ # - #unselect: Closes the mailbox and returns to the +authenticated+ state,
498
+ # without expunging any messages.
499
+ #
500
+ # ==== RFC4314: +ACL+
501
+ # - #getacl: lists the authenticated user's access rights to a mailbox.
502
+ # - #setacl: sets the access rights for a user on a mailbox
503
+ # >>>
504
+ # *NOTE:* +DELETEACL+, +LISTRIGHTS+, and +MYRIGHTS+ are not supported yet.
505
+ #
506
+ # ==== RFC4315: +UIDPLUS+
507
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
508
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
509
+ # - #uid_expunge: Restricts #expunge to only remove the specified UIDs.
510
+ # - Updates #select, #examine with the +UIDNOTSTICKY+ ResponseCode
511
+ # - Updates #append with the +APPENDUID+ ResponseCode
512
+ # - Updates #copy, #move with the +COPYUID+ ResponseCode
513
+ #
514
+ # ==== RFC4731: +ESEARCH+
515
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051].
516
+ # - Updates #search, #uid_search with +return+ options and ESearchResult.
517
+ #
518
+ # ==== RFC4959: +SASL-IR+
519
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051].
520
+ # - Updates #authenticate with the option to send an initial response.
521
+ #
522
+ # ==== RFC5161: +ENABLE+
523
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
524
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
525
+ # - #enable: Enables backwards incompatible server extensions.
526
+ #
527
+ # ==== RFC5256: +SORT+
528
+ # - #sort, #uid_sort: An alternate version of #search or #uid_search which
529
+ # sorts the results by specified keys.
530
+ # ==== RFC5256: +THREAD+
531
+ # - #thread, #uid_thread: An alternate version of #search or #uid_search,
532
+ # which arranges the results into ordered groups or threads according to a
533
+ # chosen algorithm.
534
+ #
535
+ # ==== +X-GM-EXT-1+
536
+ # +X-GM-EXT-1+ is a non-standard Gmail extension. See {Google's
537
+ # documentation}[https://developers.google.com/gmail/imap/imap-extensions].
538
+ # - Updates #fetch and #uid_fetch with support for +X-GM-MSGID+ (unique
539
+ # message ID), +X-GM-THRID+ (thread ID), and +X-GM-LABELS+ (Gmail labels).
540
+ # - Updates #search with the +X-GM-RAW+ search attribute.
541
+ # - #xlist: replaced by +SPECIAL-USE+ attributes in #list responses.
542
+ #
543
+ # *NOTE:* The +OBJECTID+ extension should replace +X-GM-MSGID+ and
544
+ # +X-GM-THRID+, but Gmail does not support it (as of 2023-11-10).
545
+ #
546
+ # ==== RFC6851: +MOVE+
547
+ # Folded into IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051] and also included
548
+ # above with {Core IMAP commands}[rdoc-ref:Net::IMAP@Core+IMAP+commands].
549
+ # - #move, #uid_move: Moves the specified messages to the end of the
550
+ # specified destination mailbox, expunging them from the current mailbox.
551
+ #
552
+ # ==== RFC6855: <tt>UTF8=ACCEPT</tt>, <tt>UTF8=ONLY</tt>
553
+ #
554
+ # - See #enable for information about support for UTF-8 string encoding.
555
+ #
556
+ # ==== RFC7162: +CONDSTORE+
557
+ #
558
+ # - Updates #enable with +CONDSTORE+ parameter. +CONDSTORE+ will also be
559
+ # enabled by using any of the extension's command parameters, listed below.
560
+ # - Updates #status with the +HIGHESTMODSEQ+ status attribute.
561
+ # - Updates #select and #examine with the +condstore+ modifier, and adds
562
+ # either a +HIGHESTMODSEQ+ or +NOMODSEQ+ ResponseCode to the responses.
563
+ # - Updates #search, #uid_search, #sort, and #uid_sort with the +MODSEQ+
564
+ # search criterion, and adds SearchResult#modseq to the search response.
565
+ # - Updates #thread and #uid_thread with the +MODSEQ+ search criterion
566
+ # <em>(but thread responses are unchanged)</em>.
567
+ # - Updates #fetch and #uid_fetch with the +changedsince+ modifier and
568
+ # +MODSEQ+ FetchData attribute.
569
+ # - Updates #store and #uid_store with the +unchangedsince+ modifier and adds
570
+ # the +MODIFIED+ ResponseCode to the tagged response.
571
+ #
572
+ # ==== RFC7888: <tt>LITERAL+</tt>
573
+ # - Literal strings smaller than Config#max_non_synchronizing_literal bytes
574
+ # are sent without waiting for the server's continuation request.
575
+ #
576
+ # ==== RFC7888: +LITERAL-+
577
+ # - Literal strings smaller than 4096 bytes or
578
+ # Config#max_non_synchronizing_literal (whichever is smaller)
579
+ # are sent without waiting for the server's continuation request.
580
+ #
581
+ # ==== RFC8438: <tt>STATUS=SIZE</tt>
582
+ # - Updates #status with the +SIZE+ status attribute.
583
+ #
584
+ # ==== RFC8474: +OBJECTID+
585
+ # - Adds +MAILBOXID+ ResponseCode to #create tagged response.
586
+ # - Adds +MAILBOXID+ ResponseCode to #select and #examine untagged response.
587
+ # - Updates #fetch and #uid_fetch with the +EMAILID+ and +THREADID+ items.
588
+ # See FetchData#emailid and FetchData#emailid.
589
+ # - Updates #status with support for the +MAILBOXID+ status attribute.
590
+ #
591
+ # ==== RFC9208: <tt>QUOTA=RES-*</tt>
592
+ # +NOTE:+ Only the +STORAGE+ quota resource type is currently supported.
593
+ # - Obsoletes the +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
594
+ # extension and provides strict semantics for different resource types.
595
+ # - #getquota: returns the resource usage and limits for a quota root
596
+ # - #getquotaroot: returns the list of quota roots for a mailbox, as well as
597
+ # their resource usage and limits.
598
+ # - #setquota: sets the resource limits for a given quota root.
599
+ # - Updates #status with <tt>"DELETED"</tt> and +DELETED-STORAGE+ attributes.
600
+ #
601
+ # ==== RFC9394: +PARTIAL+
602
+ # - Updates #search, #uid_search with the +PARTIAL+ return option which adds
603
+ # ESearchResult#partial return data.
604
+ # - Updates #uid_fetch with the +partial+ modifier.
605
+ #
606
+ # ==== RFC9586: +UIDONLY+
607
+ # - Updates #enable with +UIDONLY+ parameter.
608
+ # - Updates #uid_fetch and #uid_store to return +UIDFETCH+ response.
609
+ # - Updates #expunge and #uid_expunge to return +VANISHED+ response.
610
+ # - Prohibits use of message sequence numbers in responses or requests.
611
+ #
612
+ # == References
613
+ #
614
+ # [{IMAP4rev1}[https://www.rfc-editor.org/rfc/rfc3501.html]]::
615
+ # Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - \VERSION 4rev1",
616
+ # RFC 3501, DOI 10.17487/RFC3501, March 2003,
617
+ # <https://www.rfc-editor.org/info/rfc3501>.
618
+ #
619
+ # [IMAP-ABNF-EXT[https://www.rfc-editor.org/rfc/rfc4466.html]]::
620
+ # Melnikov, A. and C. Daboo, "Collected Extensions to IMAP4 ABNF",
621
+ # RFC 4466, DOI 10.17487/RFC4466, April 2006,
622
+ # <https://www.rfc-editor.org/info/rfc4466>.
623
+ #
624
+ # <em>Note: Net::IMAP cannot parse the entire RFC4466 grammar yet.</em>
625
+ #
626
+ # [{IMAP4rev2}[https://www.rfc-editor.org/rfc/rfc9051.html]]::
627
+ # Melnikov, A., Ed., and B. Leiba, Ed., "Internet Message Access Protocol
628
+ # (\IMAP) - Version 4rev2", RFC 9051, DOI 10.17487/RFC9051, August 2021,
629
+ # <https://www.rfc-editor.org/info/rfc9051>.
630
+ #
631
+ # <em>Note: Net::IMAP is not fully compatible with IMAP4rev2 yet.</em>
632
+ #
633
+ # [IMAP-IMPLEMENTATION[https://www.rfc-editor.org/info/rfc2683]]::
634
+ # Leiba, B., "IMAP4 Implementation Recommendations",
635
+ # RFC 2683, DOI 10.17487/RFC2683, September 1999,
636
+ # <https://www.rfc-editor.org/info/rfc2683>.
637
+ #
638
+ # [IMAP-MULTIACCESS[https://www.rfc-editor.org/info/rfc2180]]::
639
+ # Gahrns, M., "IMAP4 Multi-Accessed Mailbox Practice", RFC 2180, DOI
640
+ # 10.17487/RFC2180, July 1997, <https://www.rfc-editor.org/info/rfc2180>.
641
+ #
642
+ # [UTF7[https://www.rfc-editor.org/rfc/rfc2152]]::
643
+ # Goldsmith, D. and M. Davis, "UTF-7 A Mail-Safe Transformation Format of
644
+ # Unicode", RFC 2152, DOI 10.17487/RFC2152, May 1997,
645
+ # <https://www.rfc-editor.org/info/rfc2152>.
646
+ #
647
+ # === Message envelope and body structure
648
+ #
649
+ # [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]]::
650
+ # Resnick, P., Ed., "Internet Message Format",
651
+ # RFC 5322, DOI 10.17487/RFC5322, October 2008,
652
+ # <https://www.rfc-editor.org/info/rfc5322>.
653
+ #
654
+ # *NOTE*: obsoletes
655
+ # RFC-2822[https://www.rfc-editor.org/rfc/rfc2822] (April 2001) and
656
+ # RFC-822[https://www.rfc-editor.org/rfc/rfc822] (August 1982).
657
+ #
658
+ # [CHARSET[https://www.rfc-editor.org/rfc/rfc2978]]::
659
+ # Freed, N. and J. Postel, "IANA Charset Registration Procedures", BCP 19,
660
+ # RFC 2978, DOI 10.17487/RFC2978, October 2000,
661
+ # <https://www.rfc-editor.org/info/rfc2978>.
662
+ #
663
+ # [DISPOSITION[https://www.rfc-editor.org/rfc/rfc2183]]::
664
+ # Troost, R., Dorner, S., and K. Moore, Ed., "Communicating Presentation
665
+ # Information in Internet Messages: The Content-Disposition Header
666
+ # Field", RFC 2183, DOI 10.17487/RFC2183, August 1997,
667
+ # <https://www.rfc-editor.org/info/rfc2183>.
668
+ #
669
+ # [MIME-IMB[https://www.rfc-editor.org/rfc/rfc2045]]::
670
+ # Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions
671
+ # (MIME) Part One: Format of Internet Message Bodies",
672
+ # RFC 2045, DOI 10.17487/RFC2045, November 1996,
673
+ # <https://www.rfc-editor.org/info/rfc2045>.
674
+ #
675
+ # [MIME-IMT[https://www.rfc-editor.org/rfc/rfc2046]]::
676
+ # Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions
677
+ # (MIME) Part Two: Media Types", RFC 2046, DOI 10.17487/RFC2046,
678
+ # November 1996, <https://www.rfc-editor.org/info/rfc2046>.
679
+ #
680
+ # [MIME-HDRS[https://www.rfc-editor.org/rfc/rfc2047]]::
681
+ # Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three:
682
+ # Message Header Extensions for Non-ASCII Text",
683
+ # RFC 2047, DOI 10.17487/RFC2047, November 1996,
684
+ # <https://www.rfc-editor.org/info/rfc2047>.
685
+ #
686
+ # [RFC2231[https://www.rfc-editor.org/rfc/rfc2231]]::
687
+ # Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word
688
+ # Extensions: Character Sets, Languages, and Continuations",
689
+ # RFC 2231, DOI 10.17487/RFC2231, November 1997,
690
+ # <https://www.rfc-editor.org/info/rfc2231>.
691
+ #
692
+ # [I18n-HDRS[https://www.rfc-editor.org/rfc/rfc6532]]::
693
+ # Yang, A., Steele, S., and N. Freed, "Internationalized Email Headers",
694
+ # RFC 6532, DOI 10.17487/RFC6532, February 2012,
695
+ # <https://www.rfc-editor.org/info/rfc6532>.
696
+ #
697
+ # [LANGUAGE-TAGS[https://www.rfc-editor.org/info/rfc3282]]::
698
+ # Alvestrand, H., "Content Language Headers",
699
+ # RFC 3282, DOI 10.17487/RFC3282, May 2002,
700
+ # <https://www.rfc-editor.org/info/rfc3282>.
701
+ #
702
+ # [LOCATION[https://www.rfc-editor.org/info/rfc2557]]::
703
+ # Palme, J., Hopmann, A., and N. Shelness, "MIME Encapsulation of
704
+ # Aggregate Documents, such as HTML (MHTML)",
705
+ # RFC 2557, DOI 10.17487/RFC2557, March 1999,
706
+ # <https://www.rfc-editor.org/info/rfc2557>.
707
+ #
708
+ # [MD5[https://www.rfc-editor.org/rfc/rfc1864]]::
709
+ # Myers, J. and M. Rose, "The Content-MD5 Header Field",
710
+ # RFC 1864, DOI 10.17487/RFC1864, October 1995,
711
+ # <https://www.rfc-editor.org/info/rfc1864>.
712
+ #
713
+ # [RFC3503[https://www.rfc-editor.org/rfc/rfc3503]]::
714
+ # Melnikov, A., "Message Disposition Notification (MDN)
715
+ # profile for Internet Message Access Protocol (IMAP)",
716
+ # RFC 3503, DOI 10.17487/RFC3503, March 2003,
717
+ # <https://www.rfc-editor.org/info/rfc3503>.
718
+ #
719
+ # === \IMAP Extensions
720
+ #
721
+ # [QUOTA[https://www.rfc-editor.org/rfc/rfc2087]]::
722
+ # Myers, J., "IMAP4 QUOTA extension", RFC 2087, DOI 10.17487/RFC2087,
723
+ # January 1997, <https://www.rfc-editor.org/info/rfc2087>.
724
+ #
725
+ # *NOTE*: _obsoleted_ by RFC9208[https://www.rfc-editor.org/rfc/rfc9208]
726
+ # (March 2022).
727
+ # [IDLE[https://www.rfc-editor.org/rfc/rfc2177]]::
728
+ # Leiba, B., "IMAP4 IDLE command", RFC 2177, DOI 10.17487/RFC2177,
729
+ # June 1997, <https://www.rfc-editor.org/info/rfc2177>.
730
+ # [NAMESPACE[https://www.rfc-editor.org/rfc/rfc2342]]::
731
+ # Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342,
732
+ # DOI 10.17487/RFC2342, May 1998, <https://www.rfc-editor.org/info/rfc2342>.
733
+ # [ID[https://www.rfc-editor.org/rfc/rfc2971]]::
734
+ # Showalter, T., "IMAP4 ID extension", RFC 2971, DOI 10.17487/RFC2971,
735
+ # October 2000, <https://www.rfc-editor.org/info/rfc2971>.
736
+ # [BINARY[https://www.rfc-editor.org/rfc/rfc3516]]::
737
+ # Nerenberg, L., "IMAP4 Binary Content Extension", RFC 3516,
738
+ # DOI 10.17487/RFC3516, April 2003,
739
+ # <https://www.rfc-editor.org/info/rfc3516>.
740
+ # [ACL[https://www.rfc-editor.org/rfc/rfc4314]]::
741
+ # Melnikov, A., "IMAP4 Access Control List (ACL) Extension", RFC 4314,
742
+ # DOI 10.17487/RFC4314, December 2005,
743
+ # <https://www.rfc-editor.org/info/rfc4314>.
744
+ # [UIDPLUS[https://www.rfc-editor.org/rfc/rfc4315.html]]::
745
+ # Crispin, M., "Internet Message Access Protocol (\IMAP) - UIDPLUS
746
+ # extension", RFC 4315, DOI 10.17487/RFC4315, December 2005,
747
+ # <https://www.rfc-editor.org/info/rfc4315>.
748
+ # [SORT[https://www.rfc-editor.org/rfc/rfc5256]]::
749
+ # Crispin, M. and K. Murchison, "Internet Message Access Protocol - SORT and
750
+ # THREAD Extensions", RFC 5256, DOI 10.17487/RFC5256, June 2008,
751
+ # <https://www.rfc-editor.org/info/rfc5256>.
752
+ # [THREAD[https://www.rfc-editor.org/rfc/rfc5256]]::
753
+ # Crispin, M. and K. Murchison, "Internet Message Access Protocol - SORT and
754
+ # THREAD Extensions", RFC 5256, DOI 10.17487/RFC5256, June 2008,
755
+ # <https://www.rfc-editor.org/info/rfc5256>.
756
+ # [RFC5530[https://www.rfc-editor.org/rfc/rfc5530.html]]::
757
+ # Gulbrandsen, A., "IMAP Response Codes", RFC 5530, DOI 10.17487/RFC5530,
758
+ # May 2009, <https://www.rfc-editor.org/info/rfc5530>.
759
+ # [MOVE[https://www.rfc-editor.org/rfc/rfc6851]]::
760
+ # Gulbrandsen, A. and N. Freed, Ed., "Internet Message Access Protocol
761
+ # (\IMAP) - MOVE Extension", RFC 6851, DOI 10.17487/RFC6851, January 2013,
762
+ # <https://www.rfc-editor.org/info/rfc6851>.
763
+ # [{UTF8=ACCEPT}[https://www.rfc-editor.org/rfc/rfc6855]]::
764
+ # [{UTF8=ONLY}[https://www.rfc-editor.org/rfc/rfc6855]]::
765
+ # Resnick, P., Ed., Newman, C., Ed., and S. Shen, Ed.,
766
+ # "IMAP Support for UTF-8", RFC 6855, DOI 10.17487/RFC6855, March 2013,
767
+ # <https://www.rfc-editor.org/info/rfc6855>.
768
+ # [CONDSTORE[https://www.rfc-editor.org/rfc/rfc7162]]::
769
+ # [QRESYNC[https://www.rfc-editor.org/rfc/rfc7162]]::
770
+ # Melnikov, A. and D. Cridland, "IMAP Extensions: Quick Flag Changes
771
+ # Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization
772
+ # (QRESYNC)", RFC 7162, DOI 10.17487/RFC7162, May 2014,
773
+ # <https://www.rfc-editor.org/info/rfc7162>.
774
+ # [OBJECTID[https://www.rfc-editor.org/rfc/rfc8474]]::
775
+ # Gondwana, B., Ed., "IMAP Extension for Object Identifiers",
776
+ # RFC 8474, DOI 10.17487/RFC8474, September 2018,
777
+ # <https://www.rfc-editor.org/info/rfc8474>.
778
+ # [{QUOTA=RES-*}[https://www.rfc-editor.org/rfc/rfc9208]]::
779
+ # Melnikov, A., "IMAP QUOTA Extension", RFC 9208, DOI 10.17487/RFC9208,
780
+ # March 2022, <https://www.rfc-editor.org/info/rfc9208>.
781
+ #
782
+ # Obsoletes RFC2087[https://www.rfc-editor.org/rfc/rfc2087].
783
+ # [PARTIAL[https://www.rfc-editor.org/info/rfc9394]]::
784
+ # Melnikov, A., Achuthan, A., Nagulakonda, V., and L. Alves,
785
+ # "IMAP PARTIAL Extension for Paged SEARCH and FETCH", RFC 9394,
786
+ # DOI 10.17487/RFC9394, June 2023,
787
+ # <https://www.rfc-editor.org/info/rfc9394>.
788
+ # [UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.pdf]]::
789
+ # Melnikov, A., Achuthan, A., Nagulakonda, V., Singh, A., and L. Alves,
790
+ # "\IMAP Extension for Using and Returning Unique Identifiers (UIDs) Only",
791
+ # RFC 9586, DOI 10.17487/RFC9586, May 2024,
792
+ # <https://www.rfc-editor.org/info/rfc9586>.
793
+ #
794
+ # === IANA registries
795
+ # * {IMAP Capabilities}[http://www.iana.org/assignments/imap4-capabilities]
796
+ # * {IMAP Quota Resource Types}[http://www.iana.org/assignments/imap4-capabilities#imap-capabilities-2]
797
+ # * {IMAP Response Codes}[https://www.iana.org/assignments/imap-response-codes/imap-response-codes.xhtml]
798
+ # * {IMAP Mailbox Name Attributes}[https://www.iana.org/assignments/imap-mailbox-name-attributes/imap-mailbox-name-attributes.xhtml]
799
+ # * {IMAP and JMAP Keywords}[https://www.iana.org/assignments/imap-jmap-keywords/imap-jmap-keywords.xhtml]
800
+ # * {IMAP Threading Algorithms}[https://www.iana.org/assignments/imap-threading-algorithms/imap-threading-algorithms.xhtml]
801
+ # * {SASL Mechanisms and SASL SCRAM Family Mechanisms}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml]
802
+ # * {Service Name and Transport Protocol Port Number Registry}[https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml]:
803
+ # +imap+: tcp/143, +imaps+: tcp/993
804
+ # * {GSSAPI/Kerberos/SASL Service Names}[https://www.iana.org/assignments/gssapi-service-names/gssapi-service-names.xhtml]:
805
+ # +imap+
806
+ # * {Character sets}[https://www.iana.org/assignments/character-sets/character-sets.xhtml]
807
+ #
808
+ # ==== For currently unsupported features:
809
+ # * {LIST-EXTENDED options and responses}[https://www.iana.org/assignments/imap-list-extended/imap-list-extended.xhtml]
810
+ # * {IMAP METADATA Server Entry and Mailbox Entry Registries}[https://www.iana.org/assignments/imap-metadata/imap-metadata.xhtml]
811
+ # * {IMAP ANNOTATE Extension Entries and Attributes}[https://www.iana.org/assignments/imap-annotate-extension/imap-annotate-extension.xhtml]
812
+ # * {IMAP URLAUTH Access Identifiers and Prefixes}[https://www.iana.org/assignments/urlauth-access-ids/urlauth-access-ids.xhtml]
813
+ # * {IMAP URLAUTH Authorization Mechanism Registry}[https://www.iana.org/assignments/urlauth-authorization-mechanism-registry/urlauth-authorization-mechanism-registry.xhtml]
814
+ #
815
+ class IMAP < Protocol
816
+ VERSION = "0.6.4.1"
817
+
818
+ # Aliases for supported capabilities, to be used with the #enable command.
819
+ ENABLE_ALIASES = {
820
+ utf8: "UTF8=ACCEPT",
821
+ "UTF8=ONLY" => "UTF8=ACCEPT",
822
+ }.freeze
823
+
824
+ dir = File.expand_path("imap", __dir__)
825
+ autoload :ConnectionState, "#{dir}/connection_state"
826
+ autoload :ResponseReader, "#{dir}/response_reader"
827
+ autoload :SASL, "#{dir}/sasl"
828
+ autoload :SASLAdapter, "#{dir}/sasl_adapter"
829
+ autoload :SequenceSet, "#{dir}/sequence_set"
830
+ autoload :StringPrep, "#{dir}/stringprep"
831
+
832
+ include MonitorMixin
833
+
834
+ # :call-seq:
835
+ # Net::IMAP::SequenceSet(set = nil) -> SequenceSet
836
+ #
837
+ # Coerces +set+ into a SequenceSet, using either SequenceSet.try_convert or
838
+ # SequenceSet.new.
839
+ #
840
+ # * When +set+ is a SequenceSet, that same set is returned.
841
+ # * When +set+ responds to +to_sequence_set+, +set.to_sequence_set+ is
842
+ # returned.
843
+ # * Otherwise, returns the result from calling SequenceSet.new with +set+.
844
+ #
845
+ # Related: SequenceSet.try_convert, SequenceSet.new, SequenceSet::[]
846
+ def self.SequenceSet(set = nil)
847
+ SequenceSet.try_convert(set) || SequenceSet.new(set)
848
+ end
849
+
850
+ # Returns the global Config object
851
+ def self.config; Config.global end
852
+
853
+ # Returns the global debug mode.
854
+ # Delegates to {Net::IMAP.config.debug}[rdoc-ref:Config#debug].
855
+ def self.debug; config.debug end
856
+
857
+ # Sets the global debug mode.
858
+ # Delegates to {Net::IMAP.config.debug=}[rdoc-ref:Config#debug=].
859
+ def self.debug=(val)
860
+ config.debug = val
861
+ end
862
+
863
+ # The default port for IMAP connections, port 143
864
+ def self.default_port
865
+ return PORT
866
+ end
867
+
868
+ # The default port for IMAPS connections, port 993
869
+ def self.default_tls_port
870
+ return SSL_PORT
871
+ end
872
+
873
+ class << self
874
+ alias default_imap_port default_port
875
+ alias default_imaps_port default_tls_port
876
+ alias default_ssl_port default_tls_port
877
+ end
878
+
879
+ # Returns the initial greeting sent by the server, an UntaggedResponse.
880
+ attr_reader :greeting
881
+
882
+ # The client configuration. See Net::IMAP::Config.
883
+ #
884
+ # By default, the client's local configuration inherits from the global
885
+ # Net::IMAP.config.
886
+ attr_reader :config
887
+
888
+ ##
889
+ # :attr_reader: open_timeout
890
+ # Seconds to wait until a connection is opened. Also used by #starttls.
891
+ # Delegates to {config.open_timeout}[rdoc-ref:Config#open_timeout].
892
+
893
+ ##
894
+ # :attr_reader: idle_response_timeout
895
+ # Seconds to wait until an IDLE response is received.
896
+ # Delegates to {config.idle_response_timeout}[rdoc-ref:Config#idle_response_timeout].
897
+
898
+ ##
899
+ # :attr_accessor: max_response_size
900
+ #
901
+ # The maximum allowed server response size, in bytes.
902
+ # Delegates to {config.max_response_size}[rdoc-ref:Config#max_response_size].
903
+
904
+ # :stopdoc:
905
+ def open_timeout; config.open_timeout end
906
+ def idle_response_timeout; config.idle_response_timeout end
907
+ def max_response_size; config.max_response_size end
908
+ def max_response_size=(val) config.max_response_size = val end
909
+ # :startdoc:
910
+
911
+ # The hostname this client connected to
912
+ attr_reader :host
913
+
914
+ # The port this client connected to
915
+ attr_reader :port
916
+
917
+ # Returns the
918
+ # {SSLContext}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html]
919
+ # used by the SSLSocket when TLS is attempted, even when the TLS handshake
920
+ # is unsuccessful. The context object will be frozen.
921
+ #
922
+ # Returns +nil+ for a plaintext connection.
923
+ attr_reader :ssl_ctx
924
+
925
+ # Returns the parameters that were sent to #ssl_ctx
926
+ # {set_params}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#method-i-set_params]
927
+ # when the connection tries to use TLS (even when unsuccessful).
928
+ #
929
+ # Returns +false+ for a plaintext connection.
930
+ attr_reader :ssl_ctx_params
931
+
932
+ # Returns the current connection state.
933
+ #
934
+ # Once an IMAP connection is established, the connection is in one of four
935
+ # states: +not_authenticated+, +authenticated+, +selected+, and +logout+.
936
+ # Most commands are valid only in certain states.
937
+ #
938
+ # The connection state object responds to +to_sym+ and +name+ with the name
939
+ # of the current connection state, as a Symbol or String. Future versions
940
+ # of +net-imap+ may store additional information on the state object.
941
+ #
942
+ # From {RFC9051}[https://www.rfc-editor.org/rfc/rfc9051#section-3]:
943
+ # +----------------------+
944
+ # |connection established|
945
+ # +----------------------+
946
+ # ||
947
+ # \/
948
+ # +--------------------------------------+
949
+ # | server greeting |
950
+ # +--------------------------------------+
951
+ # || (1) || (2) || (3)
952
+ # \/ || ||
953
+ # +-----------------+ || ||
954
+ # |Not Authenticated| || ||
955
+ # +-----------------+ || ||
956
+ # || (7) || (4) || ||
957
+ # || \/ \/ ||
958
+ # || +----------------+ ||
959
+ # || | Authenticated |<=++ ||
960
+ # || +----------------+ || ||
961
+ # || || (7) || (5) || (6) ||
962
+ # || || \/ || ||
963
+ # || || +--------+ || ||
964
+ # || || |Selected|==++ ||
965
+ # || || +--------+ ||
966
+ # || || || (7) ||
967
+ # \/ \/ \/ \/
968
+ # +--------------------------------------+
969
+ # | Logout |
970
+ # +--------------------------------------+
971
+ # ||
972
+ # \/
973
+ # +-------------------------------+
974
+ # |both sides close the connection|
975
+ # +-------------------------------+
976
+ #
977
+ # >>>
978
+ # Legend for the above diagram:
979
+ #
980
+ # 1. connection without pre-authentication (+OK+ #greeting)
981
+ # 2. pre-authenticated connection (+PREAUTH+ #greeting)
982
+ # 3. rejected connection (+BYE+ #greeting)
983
+ # 4. successful #login or #authenticate command
984
+ # 5. successful #select or #examine command
985
+ # 6. #close or #unselect command, unsolicited +CLOSED+ response code, or
986
+ # failed #select or #examine command
987
+ # 7. #logout command, server shutdown, or connection closed
988
+ #
989
+ # Before the server greeting, the state is +not_authenticated+.
990
+ # After the connection closes, the state remains +logout+.
991
+ attr_reader :connection_state
992
+
993
+ # Creates a new Net::IMAP object and connects it to the specified
994
+ # +host+.
995
+ #
996
+ # ==== Options
997
+ #
998
+ # Accepts the following options:
999
+ #
1000
+ # [port]
1001
+ # Port number. Defaults to 993 when +ssl+ is truthy, and 143 otherwise.
1002
+ #
1003
+ # [ssl]
1004
+ # If +true+, the connection will use TLS with the default params set by
1005
+ # {OpenSSL::SSL::SSLContext#set_params}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#method-i-set_params].
1006
+ # If +ssl+ is a hash, it's passed to
1007
+ # {OpenSSL::SSL::SSLContext#set_params}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#method-i-set_params];
1008
+ # the keys are names of attribute assignment methods on
1009
+ # SSLContext[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html]. For example:
1010
+ #
1011
+ # [{ca_file}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#attribute-i-ca_file]]
1012
+ # The path to a file containing a PEM-format CA certificate.
1013
+ # [{ca_path}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#attribute-i-ca_path]]
1014
+ # The path to a directory containing CA certificates in PEM format.
1015
+ # [{min_version}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#method-i-min_version-3D]]
1016
+ # Sets the lower bound on the supported SSL/TLS protocol version. Set to
1017
+ # an +OpenSSL+ constant such as +OpenSSL::SSL::TLS1_2_VERSION+,
1018
+ # [{verify_mode}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#attribute-i-verify_mode]]
1019
+ # SSL session verification mode. Valid modes include
1020
+ # +OpenSSL::SSL::VERIFY_PEER+ and +OpenSSL::SSL::VERIFY_NONE+.
1021
+ #
1022
+ # See {OpenSSL::SSL::SSLContext}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html] for other valid SSL context params.
1023
+ #
1024
+ # See DeprecatedClientOptions.new for deprecated SSL arguments.
1025
+ #
1026
+ # [response_handlers]
1027
+ # A list of response handlers to be added before the receiver thread is
1028
+ # started. This ensures every server response is handled, including the
1029
+ # #greeting. Note that the greeting is handled in the current thread, but
1030
+ # all other responses are handled in the receiver thread.
1031
+ #
1032
+ # [config]
1033
+ # A Net::IMAP::Config object to use as the basis for #config. By default,
1034
+ # the global Net::IMAP.config is used.
1035
+ #
1036
+ # >>>
1037
+ # *NOTE:* +config+ does not set #config directly---it sets the _parent_
1038
+ # config for inheritance. Every client creates its own unique #config.
1039
+ #
1040
+ # All other keyword arguments are forwarded to Net::IMAP::Config.new, to
1041
+ # initialize the client's #config. For example:
1042
+ #
1043
+ # [{open_timeout}[rdoc-ref:Config#open_timeout]]
1044
+ # Seconds to wait until a connection is opened
1045
+ # [{idle_response_timeout}[rdoc-ref:Config#idle_response_timeout]]
1046
+ # Seconds to wait until an IDLE response is received
1047
+ #
1048
+ # See Net::IMAP::Config for other valid options.
1049
+ #
1050
+ # ==== Examples
1051
+ #
1052
+ # Connect to cleartext port 143 at mail.example.com and receive the server greeting:
1053
+ # imap = Net::IMAP.new('mail.example.com', ssl: false) # => #<Net::IMAP:0x00007f79b0872bd0>
1054
+ # imap.port => 143
1055
+ # imap.tls_verified? => false
1056
+ # imap.greeting => name: ("OK" | "PREAUTH") => status
1057
+ # status # => "OK"
1058
+ # # The client is connected in the "Not Authenticated" state.
1059
+ #
1060
+ # Connect with TLS to port 993
1061
+ # imap = Net::IMAP.new('mail.example.com', ssl: true) # => #<Net::IMAP:0x00007f79b0872bd0>
1062
+ # imap.port => 993
1063
+ # imap.tls_verified? => true
1064
+ # imap.greeting => name: (/OK/i | /PREAUTH/i) => status
1065
+ # case status
1066
+ # in /OK/i
1067
+ # # The client is connected in the "Not Authenticated" state.
1068
+ # imap.authenticate("PLAIN", "joe_user", "joes_password")
1069
+ # in /PREAUTH/i
1070
+ # # The client is connected in the "Authenticated" state.
1071
+ # end
1072
+ #
1073
+ # Connect with prior authentication, for example using an SSL certificate:
1074
+ # ssl_ctx_params = {
1075
+ # cert: OpenSSL::X509::Certificate.new(File.read("client.crt")),
1076
+ # key: OpenSSL::PKey::EC.new(File.read('client.key')),
1077
+ # extra_chain_cert: [
1078
+ # OpenSSL::X509::Certificate.new(File.read("intermediate.crt")),
1079
+ # ],
1080
+ # }
1081
+ # imap = Net::IMAP.new('mail.example.com', ssl: ssl_ctx_params)
1082
+ # imap.port => 993
1083
+ # imap.tls_verified? => true
1084
+ # imap.greeting => name: "PREAUTH"
1085
+ # # The client is connected in the "Authenticated" state.
1086
+ #
1087
+ # ==== Exceptions
1088
+ #
1089
+ # The most common errors are:
1090
+ #
1091
+ # [Errno::ECONNREFUSED]
1092
+ # Connection refused by +host+ or an intervening firewall.
1093
+ # [Errno::ETIMEDOUT]
1094
+ # Connection timed out (possibly due to packets being dropped by an
1095
+ # intervening firewall).
1096
+ # [Errno::ENETUNREACH]
1097
+ # There is no route to that network.
1098
+ # [SocketError]
1099
+ # Hostname not known or other socket error.
1100
+ # [Net::IMAP::ByeResponseError]
1101
+ # Connected to the host successfully, but it immediately said goodbye.
1102
+ #
1103
+ def initialize(host, port: nil, ssl: nil, response_handlers: nil,
1104
+ config: Config.global, **config_options)
1105
+ super()
1106
+ # Config options
1107
+ @host = host
1108
+ @config = Config.new(config, **config_options)
1109
+ @port = port || (ssl ? SSL_PORT : PORT)
1110
+ @ssl_ctx_params, @ssl_ctx = build_ssl_ctx(ssl)
1111
+
1112
+ # Basic Client State
1113
+ @utf8_strings = false
1114
+ @debug_output_bol = true
1115
+ @exception = nil
1116
+ @greeting = nil
1117
+ @capabilities = nil
1118
+ @tls_verified = false
1119
+ @connection_state = ConnectionState::NotAuthenticated.new
1120
+
1121
+ # Client Protocol Receiver
1122
+ @parser = ResponseParser.new(config: @config)
1123
+ @responses = Hash.new {|h, k| h[k] = [] }
1124
+ @response_handlers = []
1125
+ @receiver_thread = nil
1126
+ @receiver_thread_exception = nil
1127
+ @receiver_thread_terminating = false
1128
+ response_handlers&.each do add_response_handler(_1) end
1129
+
1130
+ # Client Protocol Sender (including state for currently running commands)
1131
+ @tag_prefix = "RUBY"
1132
+ @tagno = 0
1133
+ @tagged_responses = {}
1134
+ @tagged_response_arrival = new_cond
1135
+ @continued_command_tag = nil
1136
+ @continuation_request_arrival = new_cond
1137
+ @continuation_request_exception = nil
1138
+ @idle_done_cond = nil
1139
+ @logout_command_tag = nil
1140
+
1141
+ # Connection
1142
+ @sock = tcp_socket(@host, @port)
1143
+ @reader = ResponseReader.new(self, @sock)
1144
+ start_tls_session if ssl_ctx
1145
+ start_imap_connection
1146
+ end
1147
+
1148
+ # Returns a string representation of +self+, showing basic client state
1149
+ # information.
1150
+ #
1151
+ # imap = Net::IMAP.new(hostname, ssl: true)
1152
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:993 TLS not_authenticated>"
1153
+ #
1154
+ # imap.authenticate(:oauthbearer, "user", token)
1155
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:993 TLS authenticated>"
1156
+ #
1157
+ # imap.select("INBOX")
1158
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:993 TLS selected>"
1159
+ #
1160
+ # imap.logout
1161
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:993 TLS logout>"
1162
+ #
1163
+ # imap = Net::IMAP.new(hostname, ssl: false)
1164
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:143 PLAINTEXT not_authenticated>"
1165
+ #
1166
+ # imap.starttls verify_mode: OpenSSL::SSL::VERIFY_NONE
1167
+ # imap.inspect #=> "#<Net::IMAP imap.example.net:993 TLS (NOT VERIFIED) not_authenticated>"
1168
+ #
1169
+ def inspect
1170
+ conn_state = disconnected? ? "disconnected" : connection_state.to_sym
1171
+ "#<%s:0x%08x %s:%s %s %s>" % [
1172
+ self.class.name, __id__, host, port, inspect_tls_state, conn_state
1173
+ ]
1174
+ end
1175
+
1176
+ private def inspect_tls_state
1177
+ if tls_verified?
1178
+ "TLS"
1179
+ elsif ssl_ctx && @sock.kind_of?(OpenSSL::SSL::SSLSocket)
1180
+ "TLS (#{@sock.session ? "NOT VERIFIED" : "NOT ESTABLISHED"})"
1181
+ else
1182
+ "PLAINTEXT#{" (TLS NOT STARTED)" if ssl_ctx}"
1183
+ end
1184
+ end
1185
+
1186
+ # Returns true after the TLS negotiation has completed and the remote
1187
+ # hostname has been verified. Returns false when TLS has been established
1188
+ # but peer verification was disabled.
1189
+ def tls_verified?; @tls_verified end
1190
+
1191
+ # Disconnects from the server.
1192
+ #
1193
+ # Waits for receiver thread to close before returning, except when called
1194
+ # from inside the connection mutex such as from a response handler. Slow or
1195
+ # stuck response handlers can cause #disconnect to hang until they complete.
1196
+ #
1197
+ # Related: #logout, #logout!
1198
+ def disconnect
1199
+ in_logout_state = try_state_logout?
1200
+ return if disconnected?
1201
+ in_receiver_thread = Thread.current == @receiver_thread
1202
+ begin
1203
+ @sock.to_io.shutdown
1204
+ rescue Errno::ENOTCONN
1205
+ # ignore `Errno::ENOTCONN: Socket is not connected' on some platforms.
1206
+ rescue Exception => e
1207
+ @receiver_thread.raise(e) unless in_receiver_thread
1208
+ end
1209
+ @sock.close
1210
+ @receiver_thread.join unless mon_owned? || in_receiver_thread
1211
+ raise e if e
1212
+ ensure
1213
+ # Try again after shutting down the receiver thread. With no reciever
1214
+ # left to wait for, any remaining locks should be _very_ brief.
1215
+ state_logout! unless in_logout_state
1216
+ end
1217
+
1218
+ # Returns true if disconnected from the server.
1219
+ #
1220
+ # Related: #logout, #disconnect
1221
+ def disconnected?
1222
+ return @sock.closed?
1223
+ end
1224
+
1225
+ # Returns whether the server supports a given +capability+. When available,
1226
+ # cached #capabilities are used without sending a new #capability command to
1227
+ # the server.
1228
+ #
1229
+ # <em>*NOTE:* Most Net::IMAP methods do not _currently_ modify their
1230
+ # behaviour according to the server's advertised #capabilities.</em>
1231
+ #
1232
+ # See Net::IMAP@Capabilities for more about \IMAP capabilities.
1233
+ #
1234
+ # Related: #auth_capable?, #capabilities, #capability, #enable
1235
+ def capable?(capability) capabilities.include? capability.to_s.upcase end
1236
+ alias capability? capable?
1237
+
1238
+ # Returns the server capabilities. When available, cached capabilities are
1239
+ # used without sending a new #capability command to the server.
1240
+ #
1241
+ # To ensure a case-insensitive comparison, #capable? can be used instead.
1242
+ #
1243
+ # <em>*NOTE:* Most Net::IMAP methods do not _currently_ modify their
1244
+ # behaviour according to the server's advertised #capabilities.</em>
1245
+ #
1246
+ # See Net::IMAP@Capabilities for more about \IMAP capabilities.
1247
+ #
1248
+ # Related: #capable?, #auth_capable?, #auth_mechanisms, #capability, #enable
1249
+ def capabilities
1250
+ @capabilities || capability
1251
+ end
1252
+
1253
+ # Returns the #authenticate mechanisms that the server claims to support.
1254
+ # These are derived from the #capabilities with an <tt>AUTH=</tt> prefix.
1255
+ #
1256
+ # This may be different when the connection is cleartext or using TLS. Most
1257
+ # servers will drop all <tt>AUTH=</tt> mechanisms from #capabilities after
1258
+ # the connection has authenticated.
1259
+ #
1260
+ # imap = Net::IMAP.new(hostname, ssl: false)
1261
+ # imap.capabilities # => ["IMAP4REV1", "LOGINDISABLED"]
1262
+ # imap.auth_mechanisms # => []
1263
+ #
1264
+ # imap.starttls
1265
+ # imap.capabilities # => ["IMAP4REV1", "AUTH=PLAIN", "AUTH=XOAUTH2",
1266
+ # # "AUTH=OAUTHBEARER"]
1267
+ # imap.auth_mechanisms # => ["PLAIN", "XOAUTH2", "OAUTHBEARER"]
1268
+ #
1269
+ # imap.authenticate("XOAUTH2", username, oauth2_access_token)
1270
+ # imap.auth_mechanisms # => []
1271
+ #
1272
+ # Related: #authenticate, #auth_capable?, #capabilities
1273
+ def auth_mechanisms
1274
+ capabilities
1275
+ .grep(/\AAUTH=/i)
1276
+ .map { _1.delete_prefix("AUTH=") }
1277
+ end
1278
+
1279
+ # Returns whether the server supports a given SASL +mechanism+ for use with
1280
+ # the #authenticate command. The +mechanism+ is supported when
1281
+ # #capabilities includes <tt>"AUTH=#{mechanism.to_s.upcase}"</tt>. When
1282
+ # available, cached capabilities are used without sending a new #capability
1283
+ # command to the server.
1284
+ #
1285
+ # imap.capable? "AUTH=PLAIN" # => true
1286
+ # imap.auth_capable? "PLAIN" # => true
1287
+ # imap.auth_capable? "blurdybloop" # => false
1288
+ #
1289
+ # Related: #authenticate, #auth_mechanisms, #capable?, #capabilities
1290
+ def auth_capable?(mechanism)
1291
+ capable? "AUTH=#{mechanism}"
1292
+ end
1293
+
1294
+ # Returns whether capabilities have been cached. When true, #capable? and
1295
+ # #capabilities don't require sending a #capability command to the server.
1296
+ #
1297
+ # See Net::IMAP@Capabilities for more about \IMAP capabilities.
1298
+ #
1299
+ # Related: #capable?, #capability, #clear_cached_capabilities
1300
+ def capabilities_cached?
1301
+ !!@capabilities
1302
+ end
1303
+
1304
+ # Clears capabilities that have been remembered by the Net::IMAP client.
1305
+ # This forces a #capability command to be sent the next time a #capabilities
1306
+ # query method is called.
1307
+ #
1308
+ # Net::IMAP automatically discards its cached capabilities when they can
1309
+ # change. Explicitly calling this _should_ be unnecessary for well-behaved
1310
+ # servers.
1311
+ #
1312
+ # Related: #capable?, #capability, #capabilities_cached?
1313
+ def clear_cached_capabilities
1314
+ synchronize do
1315
+ clear_responses("CAPABILITY")
1316
+ @capabilities = nil
1317
+ end
1318
+ end
1319
+
1320
+ # Sends a {CAPABILITY command [IMAP4rev1 §6.1.1]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.1.1]
1321
+ # and returns an array of capabilities that are supported by the server.
1322
+ # The result is stored for use by #capable? and #capabilities.
1323
+ #
1324
+ # <em>*NOTE:* Most Net::IMAP methods do not _currently_ modify their
1325
+ # behaviour according to the server's advertised #capabilities.</em>
1326
+ #
1327
+ # Net::IMAP automatically stores and discards capability data according to
1328
+ # the requirements and recommendations in
1329
+ # {IMAP4rev2 §6.1.1}[https://www.rfc-editor.org/rfc/rfc9051#section-6.1.1],
1330
+ # {§6.2}[https://www.rfc-editor.org/rfc/rfc9051#section-6.2], and
1331
+ # {§7.1}[https://www.rfc-editor.org/rfc/rfc9051#section-7.1].
1332
+ # Use #capable?, #auth_capable?, or #capabilities to this cache and avoid
1333
+ # sending the #capability command unnecessarily.
1334
+ #
1335
+ # See Net::IMAP@Capabilities for more about \IMAP capabilities.
1336
+ #
1337
+ # Related: #capable?, #auth_capable?, #capability, #enable
1338
+ def capability
1339
+ synchronize do
1340
+ send_command("CAPABILITY")
1341
+ @capabilities = clear_responses("CAPABILITY").last.freeze
1342
+ end
1343
+ end
1344
+
1345
+ # Sends an {ID command [RFC2971 §3.1]}[https://www.rfc-editor.org/rfc/rfc2971#section-3.1]
1346
+ # and returns a hash of the server's response, or nil if the server does not
1347
+ # identify itself.
1348
+ #
1349
+ # Note that the user should first check if the server supports the ID
1350
+ # capability. For example:
1351
+ #
1352
+ # if capable?(:ID)
1353
+ # id = imap.id(
1354
+ # name: "my IMAP client (ruby)",
1355
+ # version: MyIMAP::VERSION,
1356
+ # "support-url": "mailto:bugs@example.com",
1357
+ # os: RbConfig::CONFIG["host_os"],
1358
+ # )
1359
+ # end
1360
+ #
1361
+ # See [ID[https://www.rfc-editor.org/rfc/rfc2971]] for field definitions.
1362
+ #
1363
+ # ==== Capabilities
1364
+ #
1365
+ # The server's capabilities must include +ID+
1366
+ # [RFC2971[https://www.rfc-editor.org/rfc/rfc2971]].
1367
+ def id(client_id=nil)
1368
+ synchronize do
1369
+ send_command("ID", ClientID.new(client_id))
1370
+ clear_responses("ID").last
1371
+ end
1372
+ end
1373
+
1374
+ # Sends a {NOOP command [IMAP4rev1 §6.1.2]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.1.2]
1375
+ # to the server.
1376
+ #
1377
+ # This allows the server to send unsolicited untagged EXPUNGE #responses,
1378
+ # but does not execute any client request. \IMAP servers are permitted to
1379
+ # send unsolicited untagged responses at any time, except for +EXPUNGE+:
1380
+ #
1381
+ # * +EXPUNGE+ can only be sent while a command is in progress.
1382
+ # * +EXPUNGE+ must _not_ be sent during #fetch, #store, or #search.
1383
+ # * +EXPUNGE+ may be sent during #uid_fetch, #uid_store, or #uid_search.
1384
+ #
1385
+ # Related: #idle, #check
1386
+ def noop
1387
+ send_command("NOOP")
1388
+ end
1389
+
1390
+ # Sends a {LOGOUT command [IMAP4rev1 §6.1.3]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.1.3]
1391
+ # to inform the command to inform the server that the client is done with
1392
+ # the connection.
1393
+ #
1394
+ # Related: #disconnect, #logout!
1395
+ def logout
1396
+ send_command("LOGOUT")
1397
+ end
1398
+
1399
+ # Calls #logout then, after receiving the TaggedResponse for the +LOGOUT+,
1400
+ # calls #disconnect. Returns the TaggedResponse from +LOGOUT+. Returns
1401
+ # +nil+ when the client is already disconnected, in contrast to #logout
1402
+ # which raises an exception.
1403
+ #
1404
+ # If #logout raises a StandardError, a warning will be printed but the
1405
+ # exception will not be re-raised.
1406
+ #
1407
+ # This is useful in situations where the connection must be dropped, for
1408
+ # example for security or after tests. If logout errors need to be handled,
1409
+ # use #logout and #disconnect instead.
1410
+ #
1411
+ # Related: #logout, #disconnect
1412
+ def logout!
1413
+ logout unless disconnected?
1414
+ rescue => ex
1415
+ warn "%s during <Net::IMAP %s:%s> logout!: %s" % [
1416
+ ex.class, host, port, ex
1417
+ ]
1418
+ ensure
1419
+ disconnect
1420
+ end
1421
+
1422
+ # Sends a {STARTTLS command [IMAP4rev1 §6.2.1]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.2.1]
1423
+ # to start a TLS session.
1424
+ #
1425
+ # Any +options+ are forwarded directly to
1426
+ # {OpenSSL::SSL::SSLContext#set_params}[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html#method-i-set_params];
1427
+ # the keys are names of attribute assignment methods on
1428
+ # SSLContext[https://docs.ruby-lang.org/en/master/OpenSSL/SSL/SSLContext.html].
1429
+ #
1430
+ # See DeprecatedClientOptions#starttls for deprecated arguments.
1431
+ #
1432
+ # This method returns after TLS negotiation and hostname verification are
1433
+ # both successful. Any error indicates that the connection has not been
1434
+ # secured.
1435
+ #
1436
+ # After the server agrees to start a TLS connection, this method waits up to
1437
+ # {config.open_timeout}[rdoc-ref:Config#open_timeout] before raising
1438
+ # +Net::OpenTimeout+.
1439
+ #
1440
+ # *Note:*
1441
+ # >>>
1442
+ # Any #response_handlers added before STARTTLS should be aware that the
1443
+ # TaggedResponse to STARTTLS is sent clear-text, _before_ TLS negotiation.
1444
+ # TLS starts immediately _after_ that response. Any response code sent
1445
+ # with the response (e.g. CAPABILITY) is insecure and cannot be trusted.
1446
+ #
1447
+ # Related: Net::IMAP.new, #login, #authenticate
1448
+ #
1449
+ # ==== Capability
1450
+ # Clients should not call #starttls unless the server advertises the
1451
+ # +STARTTLS+ capability.
1452
+ #
1453
+ # Server capabilities may change after #starttls, #login, and #authenticate.
1454
+ # Cached #capabilities will be cleared when this method completes.
1455
+ #
1456
+ def starttls(**options)
1457
+ @ssl_ctx_params, @ssl_ctx = build_ssl_ctx(options)
1458
+ handled = false
1459
+ error = nil
1460
+ ok = send_command("STARTTLS") do |resp|
1461
+ if resp.kind_of?(TaggedResponse) && resp.name == "OK"
1462
+ handled = true
1463
+ clear_cached_capabilities
1464
+ clear_responses
1465
+ start_tls_session
1466
+ end
1467
+ rescue Exception => error
1468
+ raise # note that the error backtrace is in the receiver_thread
1469
+ end
1470
+ if error
1471
+ disconnect
1472
+ raise error
1473
+ end
1474
+ unless handled
1475
+ disconnect
1476
+ raise InvalidResponseError,
1477
+ "STARTTLS handler was bypassed, although server responded %p" % [
1478
+ ok.raw_data.chomp
1479
+ ]
1480
+ end
1481
+ ok
1482
+ end
1483
+
1484
+ # :call-seq:
1485
+ # authenticate(mechanism, *, sasl_ir: config.sasl_ir, registry: Net::IMAP::SASL.authenticators, **, &) -> ok_resp
1486
+ #
1487
+ # Sends an {AUTHENTICATE command [IMAP4rev1 §6.2.2]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.2.2]
1488
+ # to authenticate the client. If successful, the connection enters the
1489
+ # "_authenticated_" state.
1490
+ #
1491
+ # +mechanism+ is the name of the \SASL authentication mechanism to be used.
1492
+ #
1493
+ # +sasl_ir+ allows or disallows sending an "initial response" (see the
1494
+ # +SASL-IR+ capability, below). Defaults to the #config value for
1495
+ # {sasl_ir}[rdoc-ref:Config#sasl_ir], which defaults to +true+.
1496
+ #
1497
+ # The +registry+ kwarg can be used to select the mechanism implementation
1498
+ # from a custom registry. See SASL.authenticator and SASL::Authenticators.
1499
+ #
1500
+ # All other arguments are forwarded to the registered SASL authenticator for
1501
+ # the requested mechanism. <em>The documentation for each individual
1502
+ # mechanism must be consulted for its specific parameters.</em>
1503
+ #
1504
+ # Related: #login, #starttls, #auth_capable?, #auth_mechanisms
1505
+ #
1506
+ # ==== Mechanisms
1507
+ #
1508
+ # Each mechanism has different properties and requirements. Please consult
1509
+ # the documentation for the specific mechanisms you are using:
1510
+ #
1511
+ # +ANONYMOUS+::
1512
+ # See AnonymousAuthenticator[rdoc-ref:Net::IMAP::SASL::AnonymousAuthenticator].
1513
+ #
1514
+ # Allows the user to gain access to public services or resources without
1515
+ # authenticating or disclosing an identity.
1516
+ #
1517
+ # +EXTERNAL+::
1518
+ # See ExternalAuthenticator[rdoc-ref:Net::IMAP::SASL::ExternalAuthenticator].
1519
+ #
1520
+ # Authenticates using already established credentials, such as a TLS
1521
+ # certificate or IPsec.
1522
+ #
1523
+ # +OAUTHBEARER+::
1524
+ # See OAuthBearerAuthenticator[rdoc-ref:Net::IMAP::SASL::OAuthBearerAuthenticator].
1525
+ #
1526
+ # Login using an OAuth2 Bearer token. This is the standard mechanism
1527
+ # for using OAuth2 with \SASL, but it is not yet deployed as widely as
1528
+ # +XOAUTH2+.
1529
+ #
1530
+ # +PLAIN+::
1531
+ # See PlainAuthenticator[rdoc-ref:Net::IMAP::SASL::PlainAuthenticator].
1532
+ #
1533
+ # Login using clear-text username and password.
1534
+ #
1535
+ # +SCRAM-SHA-1+::
1536
+ # +SCRAM-SHA-256+::
1537
+ # See ScramAuthenticator[rdoc-ref:Net::IMAP::SASL::ScramAuthenticator].
1538
+ #
1539
+ # Login by username and password. The password is not sent to the
1540
+ # server but is used in a salted challenge/response exchange.
1541
+ # +SCRAM-SHA-1+ and +SCRAM-SHA-256+ are directly supported by
1542
+ # Net::IMAP::SASL. New authenticators can easily be added for any other
1543
+ # <tt>SCRAM-*</tt> mechanism if the digest algorithm is supported by
1544
+ # OpenSSL::Digest.
1545
+ #
1546
+ # +XOAUTH2+::
1547
+ # See XOAuth2Authenticator[rdoc-ref:Net::IMAP::SASL::XOAuth2Authenticator].
1548
+ #
1549
+ # Login using a username and an OAuth2 access token. Non-standard and
1550
+ # obsoleted by +OAUTHBEARER+, but widely supported.
1551
+ #
1552
+ # See the {SASL mechanism
1553
+ # registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml]
1554
+ # for a list of all SASL mechanisms and their specifications. To register
1555
+ # new authenticators, see Authenticators.
1556
+ #
1557
+ # ===== Deprecated mechanisms
1558
+ #
1559
+ # <em>Obsolete mechanisms should be avoided, but are still available for
1560
+ # backwards compatibility. See</em> Net::IMAP::SASL@Deprecated+mechanisms.
1561
+ # <em>Using a deprecated mechanism will print a warning.</em>
1562
+ #
1563
+ # ==== Capabilities
1564
+ #
1565
+ # <tt>"AUTH=#{mechanism}"</tt> capabilities indicate server support for
1566
+ # mechanisms. Use #auth_capable? or #auth_mechanisms to check for support
1567
+ # before using a particular mechanism.
1568
+ #
1569
+ # if imap.auth_capable? "XOAUTH2"
1570
+ # imap.authenticate "XOAUTH2", username, oauth2_access_token
1571
+ # elsif imap.auth_capable? "PLAIN"
1572
+ # imap.authenticate "PLAIN", username, password
1573
+ # elsif !imap.capability? "LOGINDISABLED"
1574
+ # imap.login username, password
1575
+ # else
1576
+ # raise "No acceptable authentication mechanism is available"
1577
+ # end
1578
+ #
1579
+ # Although servers should list all supported \SASL mechanisms, they may
1580
+ # allow authentication with an unlisted +mechanism+.
1581
+ #
1582
+ # If [SASL-IR[https://www.rfc-editor.org/rfc/rfc4959.html]] is supported
1583
+ # and the appropriate <tt>"AUTH=#{mechanism}"</tt> capability is present,
1584
+ # an "initial response" may be sent as an argument to the +AUTHENTICATE+
1585
+ # command, saving a round-trip. The SASL exchange allows for server
1586
+ # challenges and client responses, but many mechanisms expect the client to
1587
+ # "respond" first. The initial response will only be sent for
1588
+ # "client-first" mechanisms.
1589
+ #
1590
+ # Server capabilities may change after #starttls, #login, and #authenticate.
1591
+ # Previously cached #capabilities will be cleared when this method
1592
+ # completes. If the TaggedResponse to #authenticate includes updated
1593
+ # capabilities, they will be cached.
1594
+ def authenticate(*args, sasl_ir: config.sasl_ir, **props, &callback)
1595
+ sasl_ir = may_depend_on_capabilities_cached?(sasl_ir)
1596
+ sasl_adapter.authenticate(*args, sasl_ir: sasl_ir, **props, &callback)
1597
+ .tap do state_authenticated! _1 end
1598
+ end
1599
+
1600
+ # Sends a {LOGIN command [IMAP4rev1 §6.2.3]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.2.3]
1601
+ # to identify the client and carries the plaintext +password+ authenticating
1602
+ # this +user+. If successful, the connection enters the "_authenticated_"
1603
+ # state.
1604
+ #
1605
+ # Using #authenticate {should be
1606
+ # preferred}[https://www.rfc-editor.org/rfc/rfc9051.html#name-login-command]
1607
+ # over #login. The LOGIN command is not the same as #authenticate with the
1608
+ # "LOGIN" +mechanism+.
1609
+ #
1610
+ # A Net::IMAP::NoResponseError is raised if authentication fails.
1611
+ #
1612
+ # Related: #authenticate, #starttls
1613
+ #
1614
+ # ==== Capabilities
1615
+ #
1616
+ # An IMAP client MUST NOT call #login when the server advertises the
1617
+ # +LOGINDISABLED+ capability. By default, Net::IMAP will raise a
1618
+ # LoginDisabledError when that capability is present. See
1619
+ # Config#enforce_logindisabled.
1620
+ #
1621
+ # Server capabilities may change after #starttls, #login, and #authenticate.
1622
+ # Cached capabilities _must_ be invalidated after this method completes.
1623
+ # The TaggedResponse to #login may include updated capabilities in its
1624
+ # ResponseCode.
1625
+ #
1626
+ def login(user, password)
1627
+ if enforce_logindisabled? && capability?("LOGINDISABLED")
1628
+ raise LoginDisabledError
1629
+ end
1630
+ send_command("LOGIN", user, password)
1631
+ .tap do state_authenticated! _1 end
1632
+ end
1633
+
1634
+ # Sends a {SELECT command [IMAP4rev1 §6.3.1]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.1]
1635
+ # to select a +mailbox+ so that messages in the +mailbox+ can be accessed.
1636
+ #
1637
+ # After you have selected a mailbox, you may retrieve the number of items in
1638
+ # that mailbox from <tt>imap.responses("EXISTS", &:last)</tt>, and the
1639
+ # number of recent messages from <tt>imap.responses("RECENT", &:last)</tt>.
1640
+ # Note that these values can change if new messages arrive during a session
1641
+ # or when existing messages are expunged; see #add_response_handler for a
1642
+ # way to detect these events.
1643
+ #
1644
+ # When the +condstore+ keyword argument is true, the server is told to
1645
+ # enable the extension. If +mailbox+ supports persistence of mod-sequences,
1646
+ # the +HIGHESTMODSEQ+ ResponseCode will be sent as an untagged response to
1647
+ # #select and all +FETCH+ responses will include FetchData#modseq.
1648
+ # Otherwise, the +NOMODSEQ+ ResponseCode will be sent.
1649
+ #
1650
+ # A Net::IMAP::NoResponseError is raised if the mailbox does not
1651
+ # exist or is for some reason non-selectable.
1652
+ #
1653
+ # Related: #examine
1654
+ #
1655
+ # ==== Capabilities
1656
+ #
1657
+ # If [UIDPLUS[https://www.rfc-editor.org/rfc/rfc4315.html]] is supported,
1658
+ # the server may return an untagged "NO" response with a "UIDNOTSTICKY"
1659
+ # response code indicating that the mailstore does not support persistent
1660
+ # UIDs:
1661
+ # imap.responses("NO", &:last)&.code&.name == "UIDNOTSTICKY"
1662
+ #
1663
+ # If [CONDSTORE[https://www.rfc-editor.org/rfc/rfc7162.html]] is supported,
1664
+ # the +condstore+ keyword parameter may be used.
1665
+ # imap.select("mbox", condstore: true)
1666
+ # modseq = imap.responses("HIGHESTMODSEQ", &:last)
1667
+ def select(mailbox, condstore: false)
1668
+ args = ["SELECT", mailbox]
1669
+ args << ["CONDSTORE"] if condstore
1670
+ synchronize do
1671
+ state_unselected! # implicitly closes current mailbox
1672
+ @responses.clear
1673
+ send_command(*args)
1674
+ .tap do state_selected! end
1675
+ end
1676
+ end
1677
+
1678
+ # Sends a {EXAMINE command [IMAP4rev1 §6.3.2]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.2]
1679
+ # to select a +mailbox+ so that messages in the +mailbox+ can be accessed.
1680
+ # Behaves the same as #select, except that the selected +mailbox+ is
1681
+ # identified as read-only.
1682
+ #
1683
+ # A Net::IMAP::NoResponseError is raised if the mailbox does not
1684
+ # exist or is for some reason non-examinable.
1685
+ #
1686
+ # Related: #select
1687
+ def examine(mailbox, condstore: false)
1688
+ args = ["EXAMINE", mailbox]
1689
+ args << ["CONDSTORE"] if condstore
1690
+ synchronize do
1691
+ state_unselected! # implicitly closes current mailbox
1692
+ @responses.clear
1693
+ send_command(*args)
1694
+ .tap do state_selected! end
1695
+ end
1696
+ end
1697
+
1698
+ # Sends a {CREATE command [IMAP4rev1 §6.3.3]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.3]
1699
+ # to create a new +mailbox+.
1700
+ #
1701
+ # A Net::IMAP::NoResponseError is raised if a mailbox with that name
1702
+ # cannot be created.
1703
+ #
1704
+ # Related: #rename, #delete
1705
+ def create(mailbox)
1706
+ send_command("CREATE", mailbox)
1707
+ end
1708
+
1709
+ # Sends a {DELETE command [IMAP4rev1 §6.3.4]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.4]
1710
+ # to remove the +mailbox+.
1711
+ #
1712
+ # A Net::IMAP::NoResponseError is raised if a mailbox with that name
1713
+ # cannot be deleted, either because it does not exist or because the
1714
+ # client does not have permission to delete it.
1715
+ #
1716
+ # Related: #create, #rename
1717
+ def delete(mailbox)
1718
+ send_command("DELETE", mailbox)
1719
+ end
1720
+
1721
+ # Sends a {RENAME command [IMAP4rev1 §6.3.5]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.5]
1722
+ # to change the name of the +mailbox+ to +newname+.
1723
+ #
1724
+ # A Net::IMAP::NoResponseError is raised if a mailbox with the
1725
+ # name +mailbox+ cannot be renamed to +newname+ for whatever
1726
+ # reason; for instance, because +mailbox+ does not exist, or
1727
+ # because there is already a mailbox with the name +newname+.
1728
+ #
1729
+ # Related: #create, #delete
1730
+ def rename(mailbox, newname)
1731
+ send_command("RENAME", mailbox, newname)
1732
+ end
1733
+
1734
+ # Sends a {SUBSCRIBE command [IMAP4rev1 §6.3.6]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.6]
1735
+ # to add the specified +mailbox+ name to the server's set of "active" or
1736
+ # "subscribed" mailboxes as returned by #lsub.
1737
+ #
1738
+ # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
1739
+ # subscribed to; for instance, because it does not exist.
1740
+ #
1741
+ # Related: #unsubscribe, #lsub, #list
1742
+ def subscribe(mailbox)
1743
+ send_command("SUBSCRIBE", mailbox)
1744
+ end
1745
+
1746
+ # Sends an {UNSUBSCRIBE command [IMAP4rev1 §6.3.7]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.7]
1747
+ # to remove the specified +mailbox+ name from the server's set of "active"
1748
+ # or "subscribed" mailboxes.
1749
+ #
1750
+ # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
1751
+ # unsubscribed from; for instance, because the client is not currently
1752
+ # subscribed to it.
1753
+ #
1754
+ # Related: #subscribe, #lsub, #list
1755
+ def unsubscribe(mailbox)
1756
+ send_command("UNSUBSCRIBE", mailbox)
1757
+ end
1758
+
1759
+ # Sends a {LIST command [IMAP4rev1 §6.3.8]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.8]
1760
+ # and returns a subset of names from the complete set of all names available
1761
+ # to the client. +refname+ provides a context (for instance, a base
1762
+ # directory in a directory-based mailbox hierarchy). +mailbox+ specifies a
1763
+ # mailbox or (via wildcards) mailboxes under that context. Two wildcards
1764
+ # may be used in +mailbox+: <tt>"*"</tt>, which matches all characters
1765
+ # *including* the hierarchy delimiter (for instance, "/" on a UNIX-hosted
1766
+ # directory-based mailbox hierarchy); and <tt>"%"</tt>, which matches all
1767
+ # characters *except* the hierarchy delimiter.
1768
+ #
1769
+ # If +refname+ is empty, +mailbox+ is used directly to determine
1770
+ # which mailboxes to match. If +mailbox+ is empty, the root
1771
+ # name of +refname+ and the hierarchy delimiter are returned.
1772
+ #
1773
+ # The return value is an array of MailboxList.
1774
+ #
1775
+ # Related: #lsub, MailboxList
1776
+ #
1777
+ # ==== For example:
1778
+ #
1779
+ # imap.create("foo/bar")
1780
+ # imap.create("foo/baz")
1781
+ # p imap.list("", "foo/%")
1782
+ # #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
1783
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
1784
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
1785
+ #
1786
+ #--
1787
+ # TODO: support LIST-EXTENDED extension [RFC5258]. Needed for IMAP4rev2.
1788
+ #++
1789
+ def list(refname, mailbox)
1790
+ synchronize do
1791
+ send_command("LIST", refname, mailbox)
1792
+ clear_responses("LIST")
1793
+ end
1794
+ end
1795
+
1796
+ # Sends a {NAMESPACE command [RFC2342 §5]}[https://www.rfc-editor.org/rfc/rfc2342#section-5]
1797
+ # and returns the namespaces that are available. The NAMESPACE command
1798
+ # allows a client to discover the prefixes of namespaces used by a server
1799
+ # for personal mailboxes, other users' mailboxes, and shared mailboxes.
1800
+ #
1801
+ # The return value is a Namespaces object which has +personal+, +other+, and
1802
+ # +shared+ fields, each an array of Namespace objects. These arrays will be
1803
+ # empty when the server responds with +nil+.
1804
+ #
1805
+ # Many \IMAP servers are configured with the default personal namespaces as
1806
+ # <tt>("" "/")</tt>: no prefix and the "+/+" hierarchy delimiter. In that
1807
+ # common case, the naive client may not have any trouble naming mailboxes.
1808
+ # But many servers are configured with the default personal namespace as
1809
+ # e.g. <tt>("INBOX." ".")</tt>, placing all personal folders under INBOX,
1810
+ # with "+.+" as the hierarchy delimiter. If the client does not check for
1811
+ # this, but naively assumes it can use the same folder names for all
1812
+ # servers, then folder creation (and listing, moving, etc) can lead to
1813
+ # errors.
1814
+ #
1815
+ # From RFC2342[https://www.rfc-editor.org/rfc/rfc2342]:
1816
+ # >>>
1817
+ # <em>Although typically a server will support only a single Personal
1818
+ # Namespace, and a single Other User's Namespace, circumstances exist
1819
+ # where there MAY be multiples of these, and a client MUST be prepared
1820
+ # for them. If a client is configured such that it is required to create
1821
+ # a certain mailbox, there can be circumstances where it is unclear which
1822
+ # Personal Namespaces it should create the mailbox in. In these
1823
+ # situations a client SHOULD let the user select which namespaces to
1824
+ # create the mailbox in.</em>
1825
+ #
1826
+ # Related: #list, Namespaces, Namespace
1827
+ #
1828
+ # ==== For example:
1829
+ #
1830
+ # if capable?("NAMESPACE")
1831
+ # namespaces = imap.namespace
1832
+ # if namespace = namespaces.personal.first
1833
+ # prefix = namespace.prefix # e.g. "" or "INBOX."
1834
+ # delim = namespace.delim # e.g. "/" or "."
1835
+ # # personal folders should use the prefix and delimiter
1836
+ # imap.create(prefix + "foo")
1837
+ # imap.create(prefix + "bar")
1838
+ # imap.create(prefix + %w[path to my folder].join(delim))
1839
+ # end
1840
+ # end
1841
+ #
1842
+ # ==== Capabilities
1843
+ #
1844
+ # The server's capabilities must include either +IMAP4rev2+ or +NAMESPACE+
1845
+ # [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]].
1846
+ def namespace
1847
+ synchronize do
1848
+ send_command("NAMESPACE")
1849
+ clear_responses("NAMESPACE").last
1850
+ end
1851
+ end
1852
+
1853
+ # Sends a XLIST command, and returns a subset of names from
1854
+ # the complete set of all names available to the client.
1855
+ # +refname+ provides a context (for instance, a base directory
1856
+ # in a directory-based mailbox hierarchy). +mailbox+ specifies
1857
+ # a mailbox or (via wildcards) mailboxes under that context.
1858
+ # Two wildcards may be used in +mailbox+: '*', which matches
1859
+ # all characters *including* the hierarchy delimiter (for instance,
1860
+ # '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
1861
+ # which matches all characters *except* the hierarchy delimiter.
1862
+ #
1863
+ # If +refname+ is empty, +mailbox+ is used directly to determine
1864
+ # which mailboxes to match. If +mailbox+ is empty, the root
1865
+ # name of +refname+ and the hierarchy delimiter are returned.
1866
+ #
1867
+ # The XLIST command is like the LIST command except that the flags
1868
+ # returned refer to the function of the folder/mailbox, e.g. :Sent
1869
+ #
1870
+ # The return value is an array of MailboxList objects. For example:
1871
+ #
1872
+ # imap.create("foo/bar")
1873
+ # imap.create("foo/baz")
1874
+ # p imap.xlist("", "foo/%")
1875
+ # #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
1876
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
1877
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
1878
+ #
1879
+ # Related: #list, MailboxList
1880
+ #
1881
+ # ==== Capabilities
1882
+ #
1883
+ # The server's capabilities must include +XLIST+,
1884
+ # a deprecated Gmail extension (replaced by +SPECIAL-USE+).
1885
+ #--
1886
+ # TODO: Net::IMAP doesn't yet have full SPECIAL-USE support. Supporting
1887
+ # servers MAY return SPECIAL-USE attributes, but are not *required* to
1888
+ # unless the SPECIAL-USE return option is supplied.
1889
+ #++
1890
+ def xlist(refname, mailbox)
1891
+ synchronize do
1892
+ send_command("XLIST", refname, mailbox)
1893
+ clear_responses("XLIST")
1894
+ end
1895
+ end
1896
+
1897
+ # Sends a {GETQUOTAROOT command [RFC2087 §4.3]}[https://www.rfc-editor.org/rfc/rfc2087#section-4.3]
1898
+ # along with the specified +mailbox+. This command is generally available
1899
+ # to both admin and user. If this mailbox exists, it returns an array
1900
+ # containing objects of type MailboxQuotaRoot and MailboxQuota.
1901
+ #
1902
+ # *NOTE:* Currently, Net::IMAP only supports +QUOTA+ responses with a single
1903
+ # resource type. This is usually +STORAGE+, but you may need to verify this
1904
+ # with UntaggedResponse#raw_data.
1905
+ #
1906
+ # Related: #getquota, #setquota, MailboxQuotaRoot, MailboxQuota
1907
+ #
1908
+ # ==== Capabilities
1909
+ #
1910
+ # Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
1911
+ # capability, or a capability prefixed with <tt>QUOTA=RES-*</tt>
1912
+ # {[RFC9208]}[https://www.rfc-editor.org/rfc/rfc9208] for each supported
1913
+ # resource type.
1914
+ def getquotaroot(mailbox)
1915
+ synchronize do
1916
+ send_command("GETQUOTAROOT", mailbox)
1917
+ result = []
1918
+ result.concat(clear_responses("QUOTAROOT"))
1919
+ result.concat(clear_responses("QUOTA"))
1920
+ return result
1921
+ end
1922
+ end
1923
+
1924
+ # Sends a {GETQUOTA command [RFC2087 §4.2]}[https://www.rfc-editor.org/rfc/rfc2087#section-4.2]
1925
+ # for the +quota_root+. If this quota root exists, then an array
1926
+ # containing a MailboxQuota object is returned.
1927
+ #
1928
+ # The names of quota roots that are applicable to a particular mailbox can
1929
+ # be discovered with #getquotaroot.
1930
+ #
1931
+ # *NOTE:* Currently, Net::IMAP only supports +QUOTA+ responses with a single
1932
+ # resource type. This is usually +STORAGE+, but you may need to verify this
1933
+ # with UntaggedResponse#raw_data.
1934
+ #
1935
+ # Related: #getquotaroot, #setquota, MailboxQuota
1936
+ #
1937
+ # ==== Capabilities
1938
+ #
1939
+ # Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
1940
+ # capability, or a capability prefixed with <tt>QUOTA=RES-*</tt>
1941
+ # {[RFC9208]}[https://www.rfc-editor.org/rfc/rfc9208] for each supported
1942
+ # resource type.
1943
+ def getquota(quota_root)
1944
+ synchronize do
1945
+ send_command("GETQUOTA", quota_root)
1946
+ clear_responses("QUOTA")
1947
+ end
1948
+ end
1949
+
1950
+ # Sends a {SETQUOTA command [RFC2087 §4.1]}[https://www.rfc-editor.org/rfc/rfc2087#section-4.1]
1951
+ # along with the specified +quota_root+ and +storage_limit+. If
1952
+ # +storage_limit+ is +nil+, resource limits are unset for that quota root.
1953
+ # If +storage_limit+ is a number, it sets the +STORAGE+ resource limit.
1954
+ #
1955
+ # imap.setquota "#user/alice", 100
1956
+ # imap.getquota "#user/alice"
1957
+ # # => [#<struct Net::IMAP::MailboxQuota mailbox="#user/alice" usage=54 quota=100>]
1958
+ #
1959
+ # Typically one needs to be logged in as a server admin for this to work.
1960
+ #
1961
+ # *NOTE:* Currently, Net::IMAP only supports setting +STORAGE+ quota limits.
1962
+ #
1963
+ # Related: #getquota, #getquotaroot
1964
+ #
1965
+ # ==== Capabilities
1966
+ #
1967
+ # Requires +QUOTA+ [RFC2087[https://www.rfc-editor.org/rfc/rfc2087]]
1968
+ # capability, or a capability prefixed with <tt>QUOTA=RES-*</tt>
1969
+ # {[RFC9208]}[https://www.rfc-editor.org/rfc/rfc9208] for each supported
1970
+ # resource type.
1971
+ def setquota(quota_root, storage_limit)
1972
+ if storage_limit.nil?
1973
+ list = []
1974
+ else
1975
+ list = ["STORAGE", NumValidator.coerce_number64(storage_limit)]
1976
+ end
1977
+ send_command("SETQUOTA", quota_root, list)
1978
+ end
1979
+
1980
+ # Sends a {SETACL command [RFC4314 §3.1]}[https://www.rfc-editor.org/rfc/rfc4314#section-3.1]
1981
+ # along with +mailbox+, +user+ and the +rights+ that user is to have on that
1982
+ # mailbox. If +rights+ is nil, then that user will be stripped of any
1983
+ # rights to that mailbox.
1984
+ #
1985
+ # Related: #getacl
1986
+ #
1987
+ # ==== Capabilities
1988
+ #
1989
+ # The server's capabilities must include +ACL+
1990
+ # [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]].
1991
+ def setacl(mailbox, user, rights)
1992
+ if rights.nil?
1993
+ send_command("SETACL", mailbox, user, "")
1994
+ else
1995
+ send_command("SETACL", mailbox, user, rights)
1996
+ end
1997
+ end
1998
+
1999
+ # Sends a {GETACL command [RFC4314 §3.3]}[https://www.rfc-editor.org/rfc/rfc4314#section-3.3]
2000
+ # along with a specified +mailbox+. If this mailbox exists, an array
2001
+ # containing objects of MailboxACLItem will be returned.
2002
+ #
2003
+ # Related: #setacl, MailboxACLItem
2004
+ #
2005
+ # ==== Capabilities
2006
+ #
2007
+ # The server's capabilities must include +ACL+
2008
+ # [RFC4314[https://www.rfc-editor.org/rfc/rfc4314]].
2009
+ def getacl(mailbox)
2010
+ synchronize do
2011
+ send_command("GETACL", mailbox)
2012
+ clear_responses("ACL").last
2013
+ end
2014
+ end
2015
+
2016
+ # Sends a {LSUB command [IMAP4rev1 §6.3.9]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.9]
2017
+ # and returns a subset of names from the set of names that the user has
2018
+ # declared as being "active" or "subscribed." +refname+ and +mailbox+ are
2019
+ # interpreted as for #list.
2020
+ #
2021
+ # The return value is an array of MailboxList objects.
2022
+ #
2023
+ # Related: #subscribe, #unsubscribe, #list, MailboxList
2024
+ def lsub(refname, mailbox)
2025
+ synchronize do
2026
+ send_command("LSUB", refname, mailbox)
2027
+ clear_responses("LSUB")
2028
+ end
2029
+ end
2030
+
2031
+ # Sends a {STATUS command [IMAP4rev1 §6.3.10]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.10]
2032
+ # and returns the status of the indicated +mailbox+. +attr+ is a list of one
2033
+ # or more attributes whose statuses are to be requested.
2034
+ #
2035
+ # The return value is a hash of attributes. Most status attributes return
2036
+ # integer values, but some return other value types (documented below).
2037
+ #
2038
+ # A Net::IMAP::NoResponseError is raised if status values
2039
+ # for +mailbox+ cannot be returned; for instance, because it
2040
+ # does not exist.
2041
+ #
2042
+ # ==== Supported attributes
2043
+ #
2044
+ # +MESSAGES+:: The number of messages in the mailbox.
2045
+ #
2046
+ # +UIDNEXT+:: The next unique identifier value of the mailbox.
2047
+ #
2048
+ # +UIDVALIDITY+:: The unique identifier validity value of the mailbox.
2049
+ #
2050
+ # +UNSEEN+:: The number of messages without the <tt>\Seen</tt> flag.
2051
+ #
2052
+ # +DELETED+:: The number of messages with the <tt>\Deleted</tt> flag.
2053
+ #
2054
+ # +SIZE+::
2055
+ # The approximate size of the mailbox---must be greater than or equal to
2056
+ # the sum of all messages' +RFC822.SIZE+ fetch item values.
2057
+ #
2058
+ # +HIGHESTMODSEQ+::
2059
+ # The highest mod-sequence value of all messages in the mailbox. See
2060
+ # +CONDSTORE+ {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
2061
+ #
2062
+ # +MAILBOXID+::
2063
+ # A server-allocated unique _string_ identifier for the mailbox. See
2064
+ # +OBJECTID+ {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
2065
+ #
2066
+ # +RECENT+::
2067
+ # The number of messages with the <tt>\Recent</tt> flag.
2068
+ # _NOTE:_ +RECENT+ was removed from IMAP4rev2.
2069
+ #
2070
+ # Unsupported attributes may be requested. The attribute value will be
2071
+ # either an Integer or an ExtensionData object.
2072
+ #
2073
+ # ==== For example:
2074
+ #
2075
+ # p imap.status("inbox", ["MESSAGES", "RECENT"])
2076
+ # #=> {"RECENT"=>0, "MESSAGES"=>44}
2077
+ #
2078
+ # ==== Capabilities
2079
+ #
2080
+ # +SIZE+ requires the server's capabilities to include either +IMAP4rev2+ or
2081
+ # <tt>STATUS=SIZE</tt>
2082
+ # {[RFC8483]}[https://www.rfc-editor.org/rfc/rfc8483.html].
2083
+ #
2084
+ # +DELETED+ must be supported when the server's capabilities includes
2085
+ # +IMAP4rev2+.
2086
+ # or <tt>QUOTA=RES-MESSAGES</tt>
2087
+ # {[RFC9208]}[https://www.rfc-editor.org/rfc/rfc9208.html].
2088
+ #
2089
+ # +HIGHESTMODSEQ+ requires the server's capabilities to include +CONDSTORE+
2090
+ # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html].
2091
+ #
2092
+ # +MAILBOXID+ requires the server's capabilities to include +OBJECTID+
2093
+ # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html].
2094
+ def status(mailbox, attr)
2095
+ synchronize do
2096
+ send_command("STATUS", mailbox, attr)
2097
+ clear_responses("STATUS").last&.attr
2098
+ end
2099
+ end
2100
+
2101
+ # Sends an {APPEND command [IMAP4rev1 §6.3.11]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.3.11]
2102
+ # to append the +message+ to the end of the +mailbox+. The optional +flags+
2103
+ # argument is an array of flags initially passed to the new message. The
2104
+ # optional +date_time+ argument specifies the creation time to assign to the
2105
+ # new message; it defaults to the current time.
2106
+ #
2107
+ # For example:
2108
+ #
2109
+ # imap.append("inbox", <<EOF.gsub(/\n/, "\r\n"), [:Seen], Time.now)
2110
+ # Subject: hello
2111
+ # From: shugo@ruby-lang.org
2112
+ # To: shugo@ruby-lang.org
2113
+ #
2114
+ # hello world
2115
+ # EOF
2116
+ #
2117
+ # A Net::IMAP::NoResponseError is raised if the mailbox does
2118
+ # not exist (it is not created automatically), or if the flags,
2119
+ # date_time, or message arguments contain errors.
2120
+ #
2121
+ # ==== Capabilities
2122
+ #
2123
+ # If +BINARY+ [RFC3516[https://www.rfc-editor.org/rfc/rfc3516.html]] is
2124
+ # supported by the server, +message+ may contain +NULL+ characters and
2125
+ # be sent as a binary literal. Otherwise, binary message parts must be
2126
+ # encoded appropriately (for example, +base64+).
2127
+ #
2128
+ # If +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315.html]] is
2129
+ # supported and the destination supports persistent UIDs, the server's
2130
+ # response should include an +APPENDUID+ response code with AppendUIDData.
2131
+ # This will report the UIDVALIDITY of the destination mailbox and the
2132
+ # assigned UID of the appended message.
2133
+ #
2134
+ #--
2135
+ # TODO: add MULTIAPPEND support
2136
+ #++
2137
+ def append(mailbox, message, flags = nil, date_time = nil)
2138
+ message = StringFormatter.literal_or_literal8(message, name: "message")
2139
+ args = []
2140
+ args.push(flags) if flags
2141
+ args.push(date_time) if date_time
2142
+ args.push(message)
2143
+ send_command("APPEND", mailbox, *args)
2144
+ end
2145
+
2146
+ # Sends a {CHECK command [IMAP4rev1 §6.4.1]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.1]
2147
+ # to request a checkpoint of the currently selected mailbox. This performs
2148
+ # implementation-specific housekeeping; for instance, reconciling the
2149
+ # mailbox's in-memory and on-disk state.
2150
+ #
2151
+ # Related: #idle, #noop
2152
+ def check
2153
+ send_command("CHECK")
2154
+ end
2155
+
2156
+ # Sends a {CLOSE command [IMAP4rev1 §6.4.2]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.2]
2157
+ # to close the currently selected mailbox. The CLOSE command permanently
2158
+ # removes from the mailbox all messages that have the <tt>\\Deleted</tt>
2159
+ # flag set.
2160
+ #
2161
+ # Related: #unselect
2162
+ def close
2163
+ send_command("CLOSE")
2164
+ .tap do state_authenticated! end
2165
+ end
2166
+
2167
+ # Sends an {UNSELECT command [RFC3691 §2]}[https://www.rfc-editor.org/rfc/rfc3691#section-3]
2168
+ # {[IMAP4rev2 §6.4.2]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.4.2]
2169
+ # to free the session resources for a mailbox and return to the
2170
+ # "_authenticated_" state. This is the same as #close, except that
2171
+ # <tt>\\Deleted</tt> messages are not removed from the mailbox.
2172
+ #
2173
+ # Related: #close
2174
+ #
2175
+ # ==== Capabilities
2176
+ #
2177
+ # The server's capabilities must include either +IMAP4rev2+ or +UNSELECT+
2178
+ # [RFC3691[https://www.rfc-editor.org/rfc/rfc3691]].
2179
+ def unselect
2180
+ send_command("UNSELECT")
2181
+ .tap do state_authenticated! end
2182
+ end
2183
+
2184
+ # call-seq:
2185
+ # expunge -> array of message sequence numbers
2186
+ # expunge -> VanishedData of UIDs
2187
+ #
2188
+ # Sends an {EXPUNGE command [IMAP4rev1 §6.4.3]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.3]
2189
+ # to permanently remove all messages with the +\Deleted+ flag from the
2190
+ # currently selected mailbox.
2191
+ #
2192
+ # Returns either an array of expunged message <em>sequence numbers</em> or
2193
+ # (when the appropriate capability is enabled) VanishedData of expunged
2194
+ # UIDs. Previously unhandled +EXPUNGE+ or +VANISHED+ responses are merged
2195
+ # with the direct response to this command. <tt>VANISHED (EARLIER)</tt>
2196
+ # responses will _not_ be merged.
2197
+ #
2198
+ # When no messages have been expunged, an empty array is returned,
2199
+ # regardless of which extensions are enabled. In a future release, an empty
2200
+ # VanishedData may be returned, based on the currently enabled extensions.
2201
+ #
2202
+ # Related: #uid_expunge
2203
+ #
2204
+ # ==== Capabilities
2205
+ #
2206
+ # When either QRESYNC[https://www.rfc-editor.org/rfc/rfc7162] or
2207
+ # UIDONLY[https://www.rfc-editor.org/rfc/rfc9586] are enabled, #expunge
2208
+ # returns VanishedData, which contains UIDs---<em>not message sequence
2209
+ # numbers</em>.
2210
+ def expunge
2211
+ expunge_internal("EXPUNGE")
2212
+ end
2213
+
2214
+ # call-seq:
2215
+ # uid_expunge(uid_set) -> array of message sequence numbers
2216
+ # uid_expunge(uid_set) -> VanishedData of UIDs
2217
+ #
2218
+ # Sends a {UID EXPUNGE command [RFC4315 §2.1]}[https://www.rfc-editor.org/rfc/rfc4315#section-2.1]
2219
+ # {[IMAP4rev2 §6.4.9]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.4.9]
2220
+ # to permanently remove all messages that have both the <tt>\\Deleted</tt>
2221
+ # flag set and a UID that is included in +uid_set+.
2222
+ #
2223
+ # Returns the same result type as #expunge.
2224
+ #
2225
+ # By using #uid_expunge instead of #expunge when resynchronizing with
2226
+ # the server, the client can ensure that it does not inadvertantly
2227
+ # remove any messages that have been marked as <tt>\\Deleted</tt> by other
2228
+ # clients between the time that the client was last connected and
2229
+ # the time the client resynchronizes.
2230
+ #
2231
+ # Related: #expunge
2232
+ #
2233
+ # ==== Capabilities
2234
+ #
2235
+ # The server's capabilities must include either +IMAP4rev2+ or +UIDPLUS+
2236
+ # [RFC4315[https://www.rfc-editor.org/rfc/rfc4315.html]].
2237
+ #
2238
+ # Otherwise, #uid_expunge is updated by extensions in the same way as
2239
+ # #expunge.
2240
+ def uid_expunge(uid_set)
2241
+ expunge_internal("UID EXPUNGE", SequenceSet.new(uid_set))
2242
+ end
2243
+
2244
+ # :call-seq:
2245
+ # search(criteria, charset = nil) -> result
2246
+ # search(criteria, charset: nil, return: nil) -> result
2247
+ #
2248
+ # Sends a {SEARCH command [IMAP4rev1 §6.4.4]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.4]
2249
+ # to search the mailbox for messages that match the given search +criteria+,
2250
+ # and returns either a SearchResult or an ESearchResult. SearchResult
2251
+ # inherits from Array (for backward compatibility) but adds
2252
+ # SearchResult#modseq when the +CONDSTORE+ capability has been enabled.
2253
+ # ESearchResult also implements {#to_a}[rdoc-ref:ESearchResult#to_a], for
2254
+ # compatibility with SearchResult.
2255
+ #
2256
+ # +criteria+ is one or more search keys and their arguments, which may be
2257
+ # provided as an array or a string.
2258
+ # See {"Argument translation"}[rdoc-ref:#search@Argument+translation]
2259
+ # and {"Search criteria"}[rdoc-ref:#search@Search+criteria], below.
2260
+ # <em>Please note</em> the warning for when +criteria+ is a String.
2261
+ #
2262
+ # +return+ options control what kind of information is returned about
2263
+ # messages matching the search +criteria+. Specifying +return+ should force
2264
+ # the server to return an ESearchResult instead of a SearchResult, but some
2265
+ # servers disobey this requirement. <em>Requires an extended search
2266
+ # capability, such as +ESEARCH+ or +IMAP4rev2+.</em>
2267
+ # See {"Argument translation"}[rdoc-ref:#search@Argument+translation] and
2268
+ # {"Supported return options"}[rdoc-ref:#search@Supported+return+options],
2269
+ # below.
2270
+ #
2271
+ # +charset+ is the name of the {registered character
2272
+ # set}[https://www.iana.org/assignments/character-sets/character-sets.xhtml]
2273
+ # used by strings in the search +criteria+. When +charset+ isn't specified,
2274
+ # either <tt>"US-ASCII"</tt> or <tt>"UTF-8"</tt> is assumed, depending on
2275
+ # the server's capabilities.
2276
+ #
2277
+ # _NOTE:_ Return options and charset may be sent as part of +criteria+. Do
2278
+ # not use the +return+ or +charset+ arguments when either return options or
2279
+ # charset are embedded in +criteria+.
2280
+ #
2281
+ # Related: #uid_search
2282
+ #
2283
+ # ==== For example:
2284
+ #
2285
+ # imap.search(["SUBJECT", "hello", "NOT", "SEEN"])
2286
+ # #=> [1, 6, 7, 8]
2287
+ #
2288
+ # The following assumes the server supports +ESEARCH+ and +CONDSTORE+:
2289
+ #
2290
+ # result = imap.uid_search(["UID", 12345.., "MODSEQ", 620_162_338],
2291
+ # return: %w(all count min max))
2292
+ # # => #<data Net::IMAP::ESearchResult tag="RUBY0123", uid=true,
2293
+ # # data=[["ALL", Net::IMAP::SequenceSet["12346:12349,22222:22230"]],
2294
+ # # ["COUNT", 13], ["MIN", 12346], ["MAX", 22230],
2295
+ # # ["MODSEQ", 917162488]]>
2296
+ # result.to_a # => [12346, 12347, 12348, 12349, 22222, 22223, 22224,
2297
+ # # 22225, 22226, 22227, 22228, 22229, 22230]
2298
+ # result.uid? # => true
2299
+ # result.count # => 13
2300
+ # result.min # => 12346
2301
+ # result.max # => 22230
2302
+ # result.modseq # => 917162488
2303
+ #
2304
+ # Using +return+ options to limit the result to only min, max, and count:
2305
+ #
2306
+ # result = imap.uid_search(["UID", 12345..,], return: %w(count min max))
2307
+ # # => #<data Net::IMAP::ESearchResult tag="RUBY0124", uid=true,
2308
+ # # data=[["COUNT", 13], ["MIN", 12346], ["MAX", 22230]]>
2309
+ # result.to_a # => []
2310
+ # result.count # => 13
2311
+ # result.min # => 12346
2312
+ # result.max # => 22230
2313
+ #
2314
+ # Return options and charset may be sent as keyword args or embedded in the
2315
+ # +criteria+ arg, but they must be in the correct order: <tt>"RETURN (...)
2316
+ # CHARSET ... criteria..."</tt>. The following searches
2317
+ # send the exact same command to the server:
2318
+ #
2319
+ # # Return options and charset as keyword arguments (preferred)
2320
+ # imap.search(%w(OR UNSEEN FLAGGED), return: %w(MIN MAX), charset: "UTF-8")
2321
+ # # Embedding return and charset in the criteria array
2322
+ # imap.search(["RETURN", %w(MIN MAX), "CHARSET", "UTF-8", *%w(OR UNSEEN FLAGGED)])
2323
+ # # Embedding return and charset in the criteria string
2324
+ # imap.search("RETURN (MIN MAX) CHARSET UTF-8 OR UNSEEN FLAGGED")
2325
+ #
2326
+ # Sending charset as the second positional argument is supported for
2327
+ # backward compatibility. Future versions may print a deprecation warning:
2328
+ # imap.search(%w(OR UNSEEN FLAGGED), "UTF-8", return: %w(MIN MAX))
2329
+ #
2330
+ # ==== Argument translation
2331
+ #
2332
+ # [+return+ options]
2333
+ # Must be an Array. Return option names may be either strings or symbols.
2334
+ # +Range+ elements which begin and end with negative integers are encoded
2335
+ # for use with +PARTIAL+--any other ranges are converted to SequenceSet.
2336
+ # Unlike +criteria+, other return option arguments are not automatically
2337
+ # converted to SequenceSet.
2338
+ #
2339
+ # [When +criteria+ is an Array]
2340
+ # When the array begins with <tt>"RETURN"</tt> (case insensitive), the
2341
+ # second array element is translated like the +return+ parameter (as
2342
+ # described above).
2343
+ #
2344
+ # Every other member is a +SEARCH+ command argument:
2345
+ # [SequenceSet]
2346
+ # Encoded as an \IMAP +sequence-set+ with SequenceSet#valid_string.
2347
+ # [Set, Range, <tt>-1</tt>, +:*+, responds to +#to_sequence_set+]
2348
+ # Converted to SequenceSet for validation and encoding.
2349
+ # [nested sequence-set +Array+]
2350
+ # When every element in a nested array is one of the above types, a
2351
+ # positive +Integer+, a sequence-set formatted +String+, or a deeply
2352
+ # nested +Array+ of these same types, the array will be converted to
2353
+ # SequenceSet for validation and encoding.
2354
+ # [Any other nested +Array+]
2355
+ # Otherwise, a nested array is encoded as a parenthesized list, to
2356
+ # combine multiple search keys (e.g., for use with +OR+ and +NOT+).
2357
+ # [+String+]
2358
+ # Sent verbatim when it is a valid \IMAP +atom+, and encoded as an \IMAP
2359
+ # +quoted+ or +literal+ string otherwise. Every standard search key
2360
+ # name is a valid \IMAP +atom+ and every standard search key string
2361
+ # argument is an +astring+ which may be encoded as +atom+, +quoted+, or
2362
+ # +literal+.
2363
+ #
2364
+ # *Note:* <tt>*</tt> is not a valid \IMAP +atom+ character. Any string
2365
+ # containing <tt>*</tt> will be encoded as a +quoted+ string, _not_ a
2366
+ # +sequence-set+.
2367
+ # [+Integer+ (except for <tt>-1</tt>)]
2368
+ # Encoded using +#to_s+.
2369
+ # [+Date+]
2370
+ # Encoded as an \IMAP date (see ::encode_date).
2371
+ #
2372
+ # [When +criteria+ is a String]
2373
+ # +criteria+ will be sent to the server <em>with minimal validation and no
2374
+ # encoding or formatting</em>.
2375
+ #
2376
+ # <em>*WARNING:* Although CRLF is prohibited, this is vulnerable to other
2377
+ # types of attribute injection attack if unvetted user input is used.</em>
2378
+ #
2379
+ # ==== Supported return options
2380
+ #
2381
+ # For full definitions of the standard return options and return data, see
2382
+ # the relevant RFCs.
2383
+ #
2384
+ # [+ALL+]
2385
+ # Returns ESearchResult#all with a SequenceSet of all matching sequence
2386
+ # numbers or UIDs. This is the default, when return options are empty.
2387
+ #
2388
+ # For compatibility with SearchResult, ESearchResult#to_a returns an
2389
+ # Array of message sequence numbers or UIDs.
2390
+ #
2391
+ # <em>Requires either the +ESEARCH+ or +IMAP4rev2+ capabability.</em>
2392
+ # {[RFC4731]}[https://rfc-editor.org/rfc/rfc4731]
2393
+ # {[RFC9051]}[https://rfc-editor.org/rfc/rfc9051]
2394
+ #
2395
+ # [+COUNT+]
2396
+ # Returns ESearchResult#count with the number of matching messages.
2397
+ #
2398
+ # <em>Requires either the +ESEARCH+ or +IMAP4rev2+ capabability.</em>
2399
+ # {[RFC4731]}[https://rfc-editor.org/rfc/rfc4731]
2400
+ # {[RFC9051]}[https://rfc-editor.org/rfc/rfc9051]
2401
+ #
2402
+ # [+MAX+]
2403
+ # Returns ESearchResult#max with the highest matching sequence number or
2404
+ # UID.
2405
+ #
2406
+ # <em>Requires either the +ESEARCH+ or +IMAP4rev2+ capabability.</em>
2407
+ # {[RFC4731]}[https://rfc-editor.org/rfc/rfc4731]
2408
+ # {[RFC9051]}[https://rfc-editor.org/rfc/rfc9051]
2409
+ #
2410
+ # [+MIN+]
2411
+ # Returns ESearchResult#min with the lowest matching sequence number or
2412
+ # UID.
2413
+ #
2414
+ # <em>Requires either the +ESEARCH+ or +IMAP4rev2+ capabability.</em>
2415
+ # {[RFC4731]}[https://rfc-editor.org/rfc/rfc4731]
2416
+ # {[RFC9051]}[https://rfc-editor.org/rfc/rfc9051]
2417
+ #
2418
+ # [+PARTIAL+ _range_]
2419
+ # Returns ESearchResult#partial with a SequenceSet of a subset of
2420
+ # matching sequence numbers or UIDs, as selected by _range_. As with
2421
+ # sequence numbers, the first result is +1+: <tt>1..500</tt> selects the
2422
+ # first 500 search results (in mailbox order), <tt>501..1000</tt> the
2423
+ # second 500, and so on. _range_ may also be negative: <tt>-500..-1</tt>
2424
+ # selects the last 500 search results.
2425
+ #
2426
+ # <em>Requires either the <tt>CONTEXT=SEARCH</tt> or +PARTIAL+ capabability.</em>
2427
+ # {[RFC5267]}[https://rfc-editor.org/rfc/rfc5267]
2428
+ # {[RFC9394]}[https://rfc-editor.org/rfc/rfc9394]
2429
+ #
2430
+ # ===== +MODSEQ+ return data
2431
+ #
2432
+ # ESearchResult#modseq return data does not have a corresponding return
2433
+ # option. Instead, it is returned if the +MODSEQ+ search key is used or
2434
+ # when the +CONDSTORE+ extension is enabled for the selected mailbox.
2435
+ # See [{RFC4731 §3.2}[https://www.rfc-editor.org/rfc/rfc4731#section-3.2]]
2436
+ # or [{RFC7162 §2.1.5}[https://www.rfc-editor.org/rfc/rfc7162#section-3.1.5]].
2437
+ #
2438
+ # ===== +RFC4466+ compatible extensions
2439
+ #
2440
+ # {RFC4466 §2.6}[https://www.rfc-editor.org/rfc/rfc4466.html#section-2.6]
2441
+ # defines standard syntax for search extensions. Net::IMAP allows sending
2442
+ # unsupported search return options and will parse unsupported search
2443
+ # extensions' return values into ExtensionData. Please note that this is an
2444
+ # intentionally _unstable_ API. Future releases may return different
2445
+ # (incompatible) objects, <em>without deprecation or warning</em>.
2446
+ #
2447
+ # ==== Search keys
2448
+ #
2449
+ # For full definitions of the standard search +criteria+,
2450
+ # see [{IMAP4rev1 §6.4.4}[https://www.rfc-editor.org/rfc/rfc3501.html#section-6.4.4]],
2451
+ # or [{IMAP4rev2 §6.4.4}[https://www.rfc-editor.org/rfc/rfc9051.html#section-6.4.4]],
2452
+ # in addition to documentation for
2453
+ # any #capabilities which may define additional search filters, such as
2454
+ # +CONDSTORE+, +WITHIN+, +FILTERS+, <tt>SEARCH=FUZZY</tt>, +OBJECTID+, or
2455
+ # +SAVEDATE+.
2456
+ #
2457
+ # With the exception of <em>sequence-set</em> and <em>parenthesized
2458
+ # list</em>, all search keys are composed of prefix label with zero or more
2459
+ # arguments. The number and type of arguments is specific to each search
2460
+ # key.
2461
+ #
2462
+ # ===== Search keys that match all messages
2463
+ #
2464
+ # [+ALL+]
2465
+ # The default initial key. Matches every message in the mailbox.
2466
+ #
2467
+ # [+SAVEDATESUPPORTED+]
2468
+ # Matches every message in the mailbox when the mailbox supports the save
2469
+ # date attribute. Otherwise, it matches no messages.
2470
+ #
2471
+ # <em>Requires +SAVEDATE+ capability</em>.
2472
+ # {[RFC8514]}[https://www.rfc-editor.org/rfc/rfc8514.html#section-4.3]
2473
+ #
2474
+ # ===== Sequence set search keys
2475
+ #
2476
+ # [_sequence-set_]
2477
+ # Matches messages with message sequence numbers in _sequence-set_.
2478
+ #
2479
+ # _Note:_ this search key has no label.
2480
+ #
2481
+ # <em>+UIDONLY+ must *not* be enabled.</em>
2482
+ # {[RFC9586]}[https://www.rfc-editor.org/rfc/rfc9586.html]
2483
+ #
2484
+ # [+UID+ _sequence-set_]
2485
+ # Matches messages with a UID in _sequence-set_.
2486
+ #
2487
+ # ===== Compound search keys
2488
+ #
2489
+ # [(_search-key_ _search-key_...)]
2490
+ # Combines one or more _search-key_ arguments to match
2491
+ # messages which match all contained search keys. Useful for +OR+, +NOT+,
2492
+ # and other search keys with _search-key_ arguments.
2493
+ #
2494
+ # _Note:_ this search key has no label.
2495
+ #
2496
+ # [+OR+ _search-key_ _search-key_]
2497
+ # Matches messages which match either _search-key_ argument.
2498
+ #
2499
+ # [+NOT+ _search-key_]
2500
+ # Matches messages which do not match _search-key_.
2501
+ #
2502
+ # [+FUZZY+ _search-key_]
2503
+ # Uses fuzzy matching for the specified search key.
2504
+ #
2505
+ # <em>Requires <tt>SEARCH=FUZZY</tt> capability.</em>
2506
+ # {[RFC6203]}[https://www.rfc-editor.org/rfc/rfc6203.html#section-6].
2507
+ #
2508
+ # ===== Flags search keys
2509
+ #
2510
+ # [+ANSWERED+, +UNANSWERED+]
2511
+ # Matches messages with or without the <tt>\\Answered</tt> flag.
2512
+ # [+DELETED+, +UNDELETED+]
2513
+ # Matches messages with or without the <tt>\\Deleted</tt> flag.
2514
+ # [+DRAFT+, +UNDRAFT+]
2515
+ # Matches messages with or without the <tt>\\Draft</tt> flag.
2516
+ # [+FLAGGED+, +UNFLAGGED+]
2517
+ # Matches messages with or without the <tt>\\Flagged</tt> flag.
2518
+ # [+SEEN+, +UNSEEN+]
2519
+ # Matches messages with or without the <tt>\\Seen</tt> flag.
2520
+ # [+KEYWORD+ _keyword_, +UNKEYWORD+ _keyword_]
2521
+ # Matches messages with or without the specified _keyword_.
2522
+ #
2523
+ # [+RECENT+, +UNRECENT+]
2524
+ # Matches messages with or without the <tt>\\Recent</tt> flag.
2525
+ #
2526
+ # *NOTE:* The <tt>\\Recent</tt> flag has been removed from +IMAP4rev2+.
2527
+ # [+NEW+]
2528
+ # Equivalent to <tt>(RECENT UNSEEN)</tt>.
2529
+ #
2530
+ # *NOTE:* The <tt>\\Recent</tt> flag has been removed from +IMAP4rev2+.
2531
+ #
2532
+ # ===== Header field substring search keys
2533
+ #
2534
+ # [+BCC+ _substring_]
2535
+ # Matches when _substring_ is in the envelope's +BCC+ field.
2536
+ # [+CC+ _substring_]
2537
+ # Matches when _substring_ is in the envelope's +CC+ field.
2538
+ # [+FROM+ _substring_]
2539
+ # Matches when _substring_ is in the envelope's +FROM+ field.
2540
+ # [+SUBJECT+ _substring_]
2541
+ # Matches when _substring_ is in the envelope's +SUBJECT+ field.
2542
+ # [+TO+ _substring_]
2543
+ # Matches when _substring_ is in the envelope's +TO+ field.
2544
+ #
2545
+ # [+HEADER+ _field_ _substring_]
2546
+ # Matches when _substring_ is in the specified header _field_.
2547
+ #
2548
+ # ===== Body text search keys
2549
+ # [+BODY+ _string_]
2550
+ # Matches when _string_ is in the body of the message.
2551
+ # Does not match on header fields.
2552
+ #
2553
+ # The server _may_ use flexible matching, rather than simple substring
2554
+ # matches. For example, this may use stemming or match only full words.
2555
+ #
2556
+ # [+TEXT+ _string_]
2557
+ # Matches when _string_ is in the header or body of the message.
2558
+ #
2559
+ # The server _may_ use flexible matching, rather than simple substring
2560
+ # matches. For example, this may use stemming or match only full words.
2561
+ #
2562
+ # ===== Date/Time search keys
2563
+ #
2564
+ # [+SENTBEFORE+ _date_]
2565
+ # [+SENTON+ _date_]
2566
+ # [+SENTSINCE+ _date_]
2567
+ # Matches when the +Date+ header is earlier than, on, or later than _date_.
2568
+ #
2569
+ # [+BEFORE+ _date_]
2570
+ # [+ON+ _date_]
2571
+ # [+SINCE+ _date_]
2572
+ # Matches when the +INTERNALDATE+ is earlier than, on, or later than
2573
+ # _date_.
2574
+ #
2575
+ # [+OLDER+ _interval_]
2576
+ # [+YOUNGER+ _interval_]
2577
+ # Matches when the +INTERNALDATE+ is more/less than _interval_ seconds ago.
2578
+ #
2579
+ # <em>Requires +WITHIN+ capability</em>.
2580
+ # {[RFC5032]}[https://www.rfc-editor.org/rfc/rfc5032.html]
2581
+ #
2582
+ # [+SAVEDBEFORE+ _date_]
2583
+ # [+SAVEDON+ _date_]
2584
+ # [+SAVEDSINCE+ _date_]
2585
+ # Matches when the save date is earlier than, on, or later than _date_.
2586
+ #
2587
+ # <em>Requires +SAVEDATE+ capability.</em>
2588
+ # {[RFC8514]}[https://www.rfc-editor.org/rfc/rfc8514.html#section-4.3]
2589
+ #
2590
+ # ===== Other message attribute search keys
2591
+ #
2592
+ # [+SMALLER+ _bytes_]
2593
+ # [+LARGER+ _bytes_]
2594
+ # Matches when +RFC822.SIZE+ is smaller or larger than _bytes_.
2595
+ #
2596
+ # [+ANNOTATION+ _entry_ _attr_ _value_]
2597
+ # Matches messages that have annotations with entries matching _entry_,
2598
+ # attributes matching _attr_, and _value_ in the attribute's values.
2599
+ #
2600
+ # <em>Requires +ANNOTATE-EXPERIMENT-1+ capability</em>.
2601
+ # {[RFC5257]}[https://www.rfc-editor.org/rfc/rfc5257.html].
2602
+ #
2603
+ # [+FILTER+ _filter_]
2604
+ # References a _filter_ that is stored on the server and matches all
2605
+ # messages which would be matched by that filter's search criteria.
2606
+ #
2607
+ # <em>Requires +FILTERS+ capability</em>.
2608
+ # {[RFC5466]}[https://www.rfc-editor.org/rfc/rfc5466.html#section-3.1]
2609
+ #
2610
+ # [+MODSEQ+ _modseq_]
2611
+ # Matches when +MODSEQ+ is greater than or equal to _modseq_.
2612
+ #
2613
+ # <em>Requires +CONDSTORE+ capability</em>.
2614
+ # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.1.5].
2615
+ #
2616
+ # [+MODSEQ+ _entry_ _entry-type_ _modseq_]
2617
+ # Matches when a specific metadata _entry_ has been updated since
2618
+ # _modseq_.
2619
+ #
2620
+ # For flags, the corresponding _entry_ name is
2621
+ # <tt>"/flags/#{flag_name}"</tt>, where _flag_name_ includes the
2622
+ # <tt>\\</tt> prefix. _entry-type_ can be one of <tt>"shared"</tt>,
2623
+ # <tt>"priv"</tt> (private), or <tt>"all"</tt>.
2624
+ #
2625
+ # <em>Requires +CONDSTORE+ capability</em>.
2626
+ # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.1.5].
2627
+ #
2628
+ # [+EMAILID+ _objectid_]
2629
+ # [+THREADID+ _objectid_]
2630
+ # Matches when +EMAILID+/+THREADID+ is equal to _objectid_
2631
+ # (substring matches are not supported).
2632
+ #
2633
+ # <em>Requires +OBJECTID+ capability</em>.
2634
+ # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html#section-6]
2635
+ #
2636
+ # ==== Capabilities
2637
+ #
2638
+ # Return options should only be specified when the server supports
2639
+ # +IMAP4rev2+ or an extension that allows them, such as +ESEARCH+
2640
+ # [RFC4731[https://rfc-editor.org/rfc/rfc4731#section-3.1]].
2641
+ #
2642
+ # When +IMAP4rev2+ is enabled, or when the server supports +IMAP4rev2+ but
2643
+ # not +IMAP4rev1+, ESearchResult is always returned instead of SearchResult.
2644
+ #
2645
+ # If CONDSTORE[https://www.rfc-editor.org/rfc/rfc7162.html] is supported
2646
+ # and enabled for the selected mailbox, a non-empty SearchResult will
2647
+ # include a +MODSEQ+ value.
2648
+ # imap.select("mbox", condstore: true)
2649
+ # result = imap.search(["SUBJECT", "hi there", "not", "new"])
2650
+ # #=> Net::IMAP::SearchResult[1, 6, 7, 8, modseq: 5594]
2651
+ # result.modseq # => 5594
2652
+ #
2653
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled,
2654
+ # the +SEARCH+ command is prohibited. Use #uid_search instead.
2655
+ def search(...)
2656
+ search_internal("SEARCH", ...)
2657
+ end
2658
+
2659
+ # :call-seq:
2660
+ # uid_search(criteria, charset = nil) -> result
2661
+ # uid_search(criteria, charset: nil, return: nil) -> result
2662
+ #
2663
+ # Sends a {UID SEARCH command [IMAP4rev1 §6.4.8]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.8]
2664
+ # to search the mailbox for messages that match the given searching
2665
+ # criteria, and returns unique identifiers (<tt>UID</tt>s).
2666
+ #
2667
+ # Returns a SearchResult object. SearchResult inherits from Array (for
2668
+ # backward compatibility) but adds SearchResult#modseq when the +CONDSTORE+
2669
+ # capability has been enabled.
2670
+ #
2671
+ # See #search for documentation of parameters. <em>Please note</em> the
2672
+ # warning for when +criteria+ is a String.
2673
+ #
2674
+ # ==== Capabilities
2675
+ #
2676
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled,
2677
+ # #uid_search must be used instead of #search, and the <tt><message
2678
+ # set></tt> search criterion is prohibited. Use +ALL+ or <tt>UID
2679
+ # sequence-set</tt> instead.
2680
+ #
2681
+ # Otherwise, #uid_search is updated by extensions in the same way as
2682
+ # #search.
2683
+ def uid_search(...)
2684
+ search_internal("UID SEARCH", ...)
2685
+ end
2686
+
2687
+ # :call-seq:
2688
+ # fetch(set, attr, changedsince: nil) -> array of FetchData
2689
+ #
2690
+ # Sends a {FETCH command [IMAP4rev1 §6.4.5]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.5]
2691
+ # to retrieve data associated with a message in the mailbox.
2692
+ #
2693
+ # +set+ is the message sequence numbers to fetch, and may be any valid input
2694
+ # to {SequenceSet[...]}[rdoc-ref:SequenceSet@Creating+sequence+sets].
2695
+ # (For UIDs, use #uid_fetch instead.)
2696
+ #
2697
+ # +attr+ is a list of attributes to fetch; see FetchStruct documentation for
2698
+ # a list of supported attributes.
2699
+ # >>>
2700
+ # When +attr+ is a String, it will be sent <em>with minimal validation and
2701
+ # no encoding or formatting</em>. When +attr+ is an Array, each String in
2702
+ # +attr+ will be sent this way.
2703
+ #
2704
+ # <em>*WARNING:* Although CRLF is prohibited, this is vulnerable to other
2705
+ # types of attribute injection attack if unvetted user input is used.</em>
2706
+ #
2707
+ # +changedsince+ is an optional integer mod-sequence. It limits results to
2708
+ # messages with a mod-sequence greater than +changedsince+.
2709
+ #
2710
+ # The return value is an array of FetchData.
2711
+ #
2712
+ # Related: #uid_fetch, FetchData
2713
+ #
2714
+ # ==== For example:
2715
+ #
2716
+ # p imap.fetch(6..8, "UID")
2717
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"UID"=>98}>, \\
2718
+ # #<Net::IMAP::FetchData seqno=7, attr={"UID"=>99}>, \\
2719
+ # #<Net::IMAP::FetchData seqno=8, attr={"UID"=>100}>]
2720
+ # p imap.fetch(6, "BODY[HEADER.FIELDS (SUBJECT)]")
2721
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"BODY[HEADER.FIELDS (SUBJECT)]"=>"Subject: test\r\n\r\n"}>]
2722
+ # data = imap.uid_fetch(98, ["RFC822.SIZE", "INTERNALDATE"])[0]
2723
+ # p data.seqno
2724
+ # #=> 6
2725
+ # p data.attr["RFC822.SIZE"]
2726
+ # #=> 611
2727
+ # p data.attr["INTERNALDATE"]
2728
+ # #=> "12-Oct-2000 22:40:59 +0900"
2729
+ # p data.attr["UID"]
2730
+ # #=> 98
2731
+ #
2732
+ # ==== Capabilities
2733
+ #
2734
+ # Many extensions define new message +attr+ names. See FetchStruct for a
2735
+ # list of supported extension fields.
2736
+ #
2737
+ # The server's capabilities must include +CONDSTORE+
2738
+ # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162] in order to use the
2739
+ # +changedsince+ argument. Using +changedsince+ implicitly enables the
2740
+ # +CONDSTORE+ extension.
2741
+ #
2742
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled, the
2743
+ # +FETCH+ command is prohibited. Use #uid_fetch instead.
2744
+ def fetch(...)
2745
+ fetch_internal("FETCH", ...)
2746
+ end
2747
+
2748
+ # :call-seq:
2749
+ # uid_fetch(set, attr, changedsince: nil, partial: nil) -> array of FetchData (or UIDFetchData)
2750
+ #
2751
+ # Sends a {UID FETCH command [IMAP4rev1 §6.4.8]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.8]
2752
+ # to retrieve data associated with a message in the mailbox.
2753
+ #
2754
+ # +set+ is the message UIDs to fetch, and may be any valid input to
2755
+ # {SequenceSet[...]}[rdoc-ref:SequenceSet@Creating+sequence+sets].
2756
+ # (For message sequence numbers, use #fetch instead.)
2757
+ #
2758
+ # +attr+ behaves the same as with #fetch. <em>Please note</em> the #fetch
2759
+ # warning on the +attr+ argument.
2760
+ # >>>
2761
+ # *Note:* Servers _MUST_ implicitly include the +UID+ message data item as
2762
+ # part of any +FETCH+ response caused by a +UID+ command, regardless of
2763
+ # whether a +UID+ was specified as a message data item to the +FETCH+.
2764
+ #
2765
+ # +changedsince+ (optional) behaves the same as with #fetch.
2766
+ #
2767
+ # +partial+ is an optional range to limit the number of results returned.
2768
+ # It's useful when +set+ contains an unknown number of messages.
2769
+ # <tt>1..500</tt> returns the first 500 messages in +set+ (in mailbox
2770
+ # order), <tt>501..1000</tt> the second 500, and so on. +partial+ may also
2771
+ # be negative: <tt>-500..-1</tt> selects the last 500 messages in +set+.
2772
+ # <em>Requires the +PARTIAL+ capabability.</em>
2773
+ # {[RFC9394]}[https://rfc-editor.org/rfc/rfc9394]
2774
+ #
2775
+ # For example:
2776
+ #
2777
+ # # Without partial, the size of the results may be unknown beforehand:
2778
+ # results = imap.uid_fetch(next_uid_to_fetch.., %w(UID FLAGS))
2779
+ # # ... maybe wait for a long time ... and allocate a lot of memory ...
2780
+ # results.size # => 0..2**32-1
2781
+ # process results # may also take a long time and use a lot of memory...
2782
+ #
2783
+ # # Using partial, the results may be paginated:
2784
+ # loop do
2785
+ # results = imap.uid_fetch(next_uid_to_fetch.., %w(UID FLAGS),
2786
+ # partial: 1..500)
2787
+ # # fetch should return quickly and allocate little memory
2788
+ # results.size # => 0..500
2789
+ # break if results.empty?
2790
+ # results.sort_by!(&:uid) # server may return results out of order
2791
+ # next_uid_to_fetch = results.last.uid + 1
2792
+ # process results
2793
+ # end
2794
+ #
2795
+ # Related: #fetch, FetchData
2796
+ #
2797
+ # ==== Capabilities
2798
+ #
2799
+ # The server's capabilities must include +PARTIAL+
2800
+ # {[RFC9394]}[https://rfc-editor.org/rfc/rfc9394] in order to use the
2801
+ # +partial+ argument.
2802
+ #
2803
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled,
2804
+ # #uid_fetch must be used instead of #fetch, and UIDFetchData will be
2805
+ # returned instead of FetchData.
2806
+ #
2807
+ # Otherwise, #uid_fetch is updated by extensions in the same way as #fetch.
2808
+ def uid_fetch(...)
2809
+ fetch_internal("UID FETCH", ...)
2810
+ end
2811
+
2812
+ # :call-seq:
2813
+ # store(set, attr, value, unchangedsince: nil) -> array of FetchData
2814
+ #
2815
+ # Sends a {STORE command [IMAP4rev1 §6.4.6]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.6]
2816
+ # to alter data associated with messages in the mailbox, in particular their
2817
+ # flags.
2818
+ #
2819
+ # +set+ is a number, an array of numbers, or a Range object. Each number is
2820
+ # a message sequence number.
2821
+ #
2822
+ # +attr+ is the name of a data item to store. The semantics of +value+
2823
+ # varies based on +attr+:
2824
+ # * When +attr+ is <tt>"FLAGS"</tt>, the flags in +value+ replace the
2825
+ # message's flag list.
2826
+ # * When +attr+ is <tt>"+FLAGS"</tt>, the flags in +value+ are added to
2827
+ # the flags for the message.
2828
+ # * When +attr+ is <tt>"-FLAGS"</tt>, the flags in +value+ are removed
2829
+ # from the message.
2830
+ #
2831
+ # +unchangedsince+ is an optional integer mod-sequence. It prohibits any
2832
+ # changes to messages with +mod-sequence+ greater than the specified
2833
+ # +unchangedsince+ value. A SequenceSet of any messages that fail this
2834
+ # check will be returned in a +MODIFIED+ ResponseCode.
2835
+ #
2836
+ # The return value is an array of FetchData.
2837
+ #
2838
+ # Related: #uid_store
2839
+ #
2840
+ # ==== For example:
2841
+ #
2842
+ # p imap.store(6..8, "+FLAGS", [:Deleted])
2843
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"FLAGS"=>[:Seen, :Deleted]}>,
2844
+ # #<Net::IMAP::FetchData seqno=7, attr={"FLAGS"=>[:Seen, :Deleted]}>,
2845
+ # #<Net::IMAP::FetchData seqno=8, attr={"FLAGS"=>[:Seen, :Deleted]}>]
2846
+ #
2847
+ # ==== Capabilities
2848
+ #
2849
+ # Extensions may define new data items to be used with #store.
2850
+ #
2851
+ # The server's capabilities must include +CONDSTORE+
2852
+ # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162] in order to use the
2853
+ # +unchangedsince+ argument. Using +unchangedsince+ implicitly enables the
2854
+ # +CONDSTORE+ extension.
2855
+ #
2856
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled, the
2857
+ # +STORE+ command is prohibited. Use #uid_store instead.
2858
+ def store(set, attr, flags, unchangedsince: nil)
2859
+ store_internal("STORE", set, attr, flags, unchangedsince: unchangedsince)
2860
+ end
2861
+
2862
+ # :call-seq:
2863
+ # uid_store(set, attr, value, unchangedsince: nil) -> array of FetchData (or UIDFetchData)
2864
+ #
2865
+ # Sends a {UID STORE command [IMAP4rev1 §6.4.8]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.8]
2866
+ # to alter data associated with messages in the mailbox, in particular their
2867
+ # flags.
2868
+ #
2869
+ # Similar to #store, but +set+ contains unique identifiers instead of
2870
+ # message sequence numbers.
2871
+ #
2872
+ # Related: #store
2873
+ #
2874
+ # ==== Capabilities
2875
+ #
2876
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled,
2877
+ # #uid_store must be used instead of #store, and UIDFetchData will be
2878
+ # returned instead of FetchData.
2879
+ #
2880
+ # Otherwise, #uid_store is updated by extensions in the same way as #store.
2881
+ def uid_store(set, attr, flags, unchangedsince: nil)
2882
+ store_internal("UID STORE", set, attr, flags, unchangedsince: unchangedsince)
2883
+ end
2884
+
2885
+ # Sends a {COPY command [IMAP4rev1 §6.4.7]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.7]
2886
+ # to copy the specified message(s) to the end of the specified destination
2887
+ # +mailbox+. The +set+ parameter is a number, an array of numbers, or a
2888
+ # Range object. The number is a message sequence number.
2889
+ #
2890
+ # Related: #uid_copy
2891
+ #
2892
+ # ==== Capabilities
2893
+ #
2894
+ # If +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315.html]] is
2895
+ # supported, the server's response should include a +COPYUID+ response code
2896
+ # with CopyUIDData. This will report the UIDVALIDITY of the destination
2897
+ # mailbox, the UID set of the source messages, and the assigned UID set of
2898
+ # the moved messages.
2899
+ #
2900
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled, the
2901
+ # +COPY+ command is prohibited. Use #uid_copy instead.
2902
+ def copy(set, mailbox)
2903
+ copy_internal("COPY", set, mailbox)
2904
+ end
2905
+
2906
+ # Sends a {UID COPY command [IMAP4rev1 §6.4.8]}[https://www.rfc-editor.org/rfc/rfc3501#section-6.4.8]
2907
+ # to copy the specified message(s) to the end of the specified destination
2908
+ # +mailbox+.
2909
+ #
2910
+ # Similar to #copy, but +set+ contains unique identifiers.
2911
+ #
2912
+ # ==== Capabilities
2913
+ #
2914
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] in enabled,
2915
+ # #uid_copy must be used instead of #copy.
2916
+ #
2917
+ # Otherwise, #uid_copy is updated by extensions in the same way as #copy.
2918
+ def uid_copy(set, mailbox)
2919
+ copy_internal("UID COPY", set, mailbox)
2920
+ end
2921
+
2922
+ # Sends a {MOVE command [RFC6851 §3.1]}[https://www.rfc-editor.org/rfc/rfc6851#section-3.1]
2923
+ # {[IMAP4rev2 §6.4.8]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.4.8]
2924
+ # to move the specified message(s) to the end of the specified destination
2925
+ # +mailbox+. The +set+ parameter is a number, an array of numbers, or a
2926
+ # Range object. The number is a message sequence number.
2927
+ #
2928
+ # Related: #uid_move
2929
+ #
2930
+ # ==== Capabilities
2931
+ #
2932
+ # The server's capabilities must include either +IMAP4rev2+ or +MOVE+
2933
+ # [RFC6851[https://www.rfc-editor.org/rfc/rfc6851]].
2934
+ #
2935
+ # If +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315.html]] is
2936
+ # supported, the server's response should include a +COPYUID+ response code
2937
+ # with CopyUIDData. This will report the UIDVALIDITY of the destination
2938
+ # mailbox, the UID set of the source messages, and the assigned UID set of
2939
+ # the moved messages.
2940
+ #
2941
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled, the
2942
+ # +MOVE+ command is prohibited. Use #uid_move instead.
2943
+ def move(set, mailbox)
2944
+ copy_internal("MOVE", set, mailbox)
2945
+ end
2946
+
2947
+ # Sends a {UID MOVE command [RFC6851 §3.2]}[https://www.rfc-editor.org/rfc/rfc6851#section-3.2]
2948
+ # {[IMAP4rev2 §6.4.9]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.4.9]
2949
+ # to move the specified message(s) to the end of the specified destination
2950
+ # +mailbox+.
2951
+ #
2952
+ # Similar to #move, but +set+ contains unique identifiers.
2953
+ #
2954
+ # Related: #move
2955
+ #
2956
+ # ==== Capabilities
2957
+ #
2958
+ # The server's capabilities must include either +IMAP4rev2+ or +MOVE+
2959
+ # [RFC6851[https://www.rfc-editor.org/rfc/rfc6851]].
2960
+ #
2961
+ # When UIDONLY[https://www.rfc-editor.org/rfc/rfc9586.html] is enabled,
2962
+ # #uid_move must be used instead of #move.
2963
+ #
2964
+ # Otherwise, #uid_move is updated by extensions in the same way as #move.
2965
+ def uid_move(set, mailbox)
2966
+ copy_internal("UID MOVE", set, mailbox)
2967
+ end
2968
+
2969
+ # Sends a {SORT command [RFC5256 §3]}[https://www.rfc-editor.org/rfc/rfc5256#section-3]
2970
+ # to search a mailbox for messages that match +search_keys+ and return an
2971
+ # array of message sequence numbers, sorted by +sort_keys+.
2972
+ #
2973
+ # +search_keys+ are interpreted the same as the +criteria+ argument for
2974
+ # #search. <em>Please note</em> the #search warning for String +criteria+.
2975
+ #
2976
+ #--
2977
+ # TODO: describe +sort_keys+
2978
+ #++
2979
+ #
2980
+ # Related: #uid_sort, #search, #uid_search, #thread, #uid_thread
2981
+ #
2982
+ # ==== For example:
2983
+ #
2984
+ # p imap.sort(["FROM"], ["ALL"], "US-ASCII")
2985
+ # #=> [1, 2, 3, 5, 6, 7, 8, 4, 9]
2986
+ # p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII")
2987
+ # #=> [6, 7, 8, 1]
2988
+ #
2989
+ # ==== Capabilities
2990
+ #
2991
+ # The server's capabilities must include +SORT+
2992
+ # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]].
2993
+ def sort(sort_keys, search_keys, charset)
2994
+ return sort_internal("SORT", sort_keys, search_keys, charset)
2995
+ end
2996
+
2997
+ # Sends a {UID SORT command [RFC5256 §3]}[https://www.rfc-editor.org/rfc/rfc5256#section-3]
2998
+ # to search a mailbox for messages that match +search_keys+ and return an
2999
+ # array of unique identifiers, sorted by +sort_keys+.
3000
+ #
3001
+ # +search_keys+ are interpreted the same as the +criteria+ argument for
3002
+ # #search. <em>Please note</em> the #search warning for String +criteria+.
3003
+ #
3004
+ # Related: #sort, #search, #uid_search, #thread, #uid_thread
3005
+ #
3006
+ # ==== Capabilities
3007
+ #
3008
+ # The server's capabilities must include +SORT+
3009
+ # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]].
3010
+ def uid_sort(sort_keys, search_keys, charset)
3011
+ return sort_internal("UID SORT", sort_keys, search_keys, charset)
3012
+ end
3013
+
3014
+ # Sends a {THREAD command [RFC5256 §3]}[https://www.rfc-editor.org/rfc/rfc5256#section-3]
3015
+ # to search a mailbox and return message sequence numbers in threaded
3016
+ # format, as a ThreadMember tree.
3017
+ #
3018
+ # +search_keys+ are interpreted the same as the +criteria+ argument for
3019
+ # #search. <em>Please note</em> the #search warning for String +criteria+.
3020
+ #
3021
+ # The supported algorithms are:
3022
+ #
3023
+ # ORDEREDSUBJECT:: split into single-level threads according to subject,
3024
+ # ordered by date.
3025
+ # REFERENCES:: split into threads by parent/child relationships determined
3026
+ # by which message is a reply to which.
3027
+ #
3028
+ # Unlike #search, +charset+ is a required argument. US-ASCII
3029
+ # and UTF-8 are sample values.
3030
+ #
3031
+ # Related: #uid_thread, #search, #uid_search, #sort, #uid_sort
3032
+ #
3033
+ # ==== Capabilities
3034
+ #
3035
+ # The server's capabilities must include +THREAD+
3036
+ # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]].
3037
+ def thread(algorithm, search_keys, charset)
3038
+ return thread_internal("THREAD", algorithm, search_keys, charset)
3039
+ end
3040
+
3041
+ # Sends a {UID THREAD command [RFC5256 §3]}[https://www.rfc-editor.org/rfc/rfc5256#section-3]
3042
+ # Similar to #thread, but returns unique identifiers instead of
3043
+ # message sequence numbers.
3044
+ #
3045
+ # +search_keys+ are interpreted the same as the +criteria+ argument for
3046
+ # #search. <em>Please note</em> the #search warning for String +criteria+.
3047
+ #
3048
+ # Related: #thread, #search, #uid_search, #sort, #uid_sort
3049
+ #
3050
+ # ==== Capabilities
3051
+ #
3052
+ # The server's capabilities must include +THREAD+
3053
+ # [RFC5256[https://www.rfc-editor.org/rfc/rfc5256]].
3054
+ def uid_thread(algorithm, search_keys, charset)
3055
+ return thread_internal("UID THREAD", algorithm, search_keys, charset)
3056
+ end
3057
+
3058
+ # Sends an {ENABLE command [RFC5161 §3.2]}[https://www.rfc-editor.org/rfc/rfc5161#section-3.1]
3059
+ # {[IMAP4rev2 §6.3.1]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.3.1]
3060
+ # to enable the specified server +capabilities+. Each capability may be an
3061
+ # array, string, or symbol. Returns a list of the capabilities that were
3062
+ # enabled.
3063
+ #
3064
+ # The +ENABLE+ command is only valid in the _authenticated_ state, before
3065
+ # any mailbox is selected.
3066
+ #
3067
+ # Related: #capable?, #capabilities, #capability
3068
+ #
3069
+ # ==== Capabilities
3070
+ #
3071
+ # The server's capabilities must include
3072
+ # +ENABLE+ [RFC5161[https://www.rfc-editor.org/rfc/rfc5161]]
3073
+ # or +IMAP4REV2+ [RFC9051[https://www.rfc-editor.org/rfc/rfc9051]].
3074
+ #
3075
+ # Additionally, the server capabilities must include a capability matching
3076
+ # each enabled extension (usually the same name as the enabled extension).
3077
+ # The following capabilities may be enabled:
3078
+ #
3079
+ # [+CONDSTORE+ {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html]]
3080
+ #
3081
+ # Updates various commands to return +CONDSTORE+ extension responses. It
3082
+ # is not necessary to explicitly enable +CONDSTORE+—using any of the
3083
+ # command parameters defined by the extension will implicitly enable it.
3084
+ # See {[RFC7162 §3.1]}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.1].
3085
+ #
3086
+ # [+QRESYNC+ {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html]]
3087
+ # *NOTE:* Enabling QRESYNC will replace +EXPUNGE+ with +VANISHED+, but
3088
+ # the extension arguments to #select, #examine, and #uid_fetch are not
3089
+ # supported yet.
3090
+ #
3091
+ # Adds quick resynchronization options to #select, #examine, and
3092
+ # #uid_fetch. +QRESYNC+ _must_ be explicitly enabled before using any of
3093
+ # the extension's command parameters. All +EXPUNGE+ responses will be
3094
+ # replaced with +VANISHED+ responses. Enabling +QRESYNC+ implicitly
3095
+ # enables +CONDSTORE+ as well.
3096
+ # See {[RFC7162 §3.2]}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.2].
3097
+ #
3098
+ # [+:utf8+ --- an alias for <tt>"UTF8=ACCEPT"</tt>]
3099
+ #
3100
+ # In a future release, <tt>enable(:utf8)</tt> will enable either
3101
+ # <tt>"UTF8=ACCEPT"</tt> or <tt>"IMAP4rev2"</tt>, depending on server
3102
+ # capabilities.
3103
+ #
3104
+ # [<tt>"UTF8=ACCEPT"</tt> [RFC6855[https://www.rfc-editor.org/rfc/rfc6855]]]
3105
+ #
3106
+ # The server's capabilities must include <tt>UTF8=ACCEPT</tt> _or_
3107
+ # <tt>UTF8=ONLY</tt>.
3108
+ #
3109
+ # This allows the server to send strings encoded as UTF-8 which might
3110
+ # otherwise need to use a 7-bit encoding, such as {modified
3111
+ # UTF-7}[::decode_utf7] for mailbox names, or RFC2047 encoded-words for
3112
+ # message headers.
3113
+ #
3114
+ # *Note:* <em>A future update may set string encodings slightly
3115
+ # differently</em>, e.g: "US-ASCII" when UTF-8 is not enabled, and "UTF-8"
3116
+ # when it is. Currently, the encoding of strings sent as "quoted" or
3117
+ # "text" will _always_ be "UTF-8", even when only ASCII characters are
3118
+ # used (e.g. "Subject: Agenda") And currently, string "literals" sent
3119
+ # by the server will always have an "ASCII-8BIT" (binary)
3120
+ # encoding, even if they generally contain UTF-8 data, if they are
3121
+ # text at all.
3122
+ #
3123
+ # [<tt>"UTF8=ONLY"</tt> [RFC6855[https://www.rfc-editor.org/rfc/rfc6855]]]
3124
+ #
3125
+ # A server that reports the <tt>UTF8=ONLY</tt> capability _requires_ that
3126
+ # the client <tt>enable("UTF8=ACCEPT")</tt> before any mailboxes may be
3127
+ # selected. For convenience, <tt>enable("UTF8=ONLY")</tt> is aliased to
3128
+ # <tt>enable("UTF8=ACCEPT")</tt>.
3129
+ #
3130
+ # [+UIDONLY+ {[RFC9586]}[https://www.rfc-editor.org/rfc/rfc9586.pdf]]
3131
+ #
3132
+ # When UIDONLY is enabled, the #fetch, #store, #search, #copy, and #move
3133
+ # commands are prohibited and result in a tagged BAD response. Clients
3134
+ # should instead use uid_fetch, uid_store, uid_search, uid_copy, or
3135
+ # uid_move, respectively. All +FETCH+ responses that would be returned are
3136
+ # replaced by +UIDFETCH+ responses. All +EXPUNGED+ responses that would be
3137
+ # returned are replaced by +VANISHED+ responses. The "<sequence set>"
3138
+ # uid_search criterion is prohibited.
3139
+ #
3140
+ # ===== Unsupported capabilities
3141
+ #
3142
+ # *Note:* Some extensions that use ENABLE permit the server to send syntax
3143
+ # that Net::IMAP cannot parse, which may raise an exception and disconnect.
3144
+ # Some extensions may work, but the support may be incomplete, untested, or
3145
+ # experimental.
3146
+ #
3147
+ # Until a capability is documented here as supported, enabling it may result
3148
+ # in undocumented behavior and a future release may update with incompatible
3149
+ # behavior <em>without warning or deprecation</em>.
3150
+ #
3151
+ # <em>Caution is advised.</em>
3152
+ #
3153
+ def enable(*capabilities)
3154
+ capabilities = capabilities
3155
+ .flatten
3156
+ .map {|e| ENABLE_ALIASES[e] || e }
3157
+ .flat_map { _1.is_a?(String) && !_1.empty? ? _1.split(/ /, -1) : [_1] }
3158
+ .uniq
3159
+ .map { Atom[_1] }
3160
+ synchronize do
3161
+ send_command("ENABLE", *capabilities)
3162
+ result = clear_responses("ENABLED").last || []
3163
+ @utf8_strings ||= result.include? "UTF8=ACCEPT"
3164
+ @utf8_strings ||= result.include? "IMAP4REV2"
3165
+ result
3166
+ end
3167
+ end
3168
+
3169
+ # Sends an {IDLE command [RFC2177 §3]}[https://www.rfc-editor.org/rfc/rfc6851#section-3]
3170
+ # {[IMAP4rev2 §6.3.13]}[https://www.rfc-editor.org/rfc/rfc9051#section-6.3.13]
3171
+ # that waits for notifications of new or expunged messages. Yields
3172
+ # responses from the server during the IDLE.
3173
+ #
3174
+ # Use #idle_done to leave IDLE.
3175
+ #
3176
+ # If +timeout+ is given, this method returns after +timeout+ seconds passed.
3177
+ # +timeout+ can be used for keep-alive. For example, the following code
3178
+ # checks the connection for each 60 seconds.
3179
+ #
3180
+ # loop do
3181
+ # imap.idle(60) do |response|
3182
+ # do_something_with(response)
3183
+ # imap.idle_done if some_condition?(response)
3184
+ # end
3185
+ # end
3186
+ #
3187
+ # Returns the server's response to indicate the IDLE state has ended.
3188
+ # Returns +nil+ if the server does not respond to #idle_done within
3189
+ # {config.idle_response_timeout}[rdoc-ref:Config#idle_response_timeout]
3190
+ # seconds.
3191
+ #
3192
+ # Related: #idle_done, #noop, #check
3193
+ #
3194
+ # ==== Capabilities
3195
+ #
3196
+ # The server's capabilities must include either +IMAP4rev2+ or +IDLE+
3197
+ # [RFC2177[https://www.rfc-editor.org/rfc/rfc2177]].
3198
+ def idle(timeout = nil, &response_handler)
3199
+ raise LocalJumpError, "no block given" unless response_handler
3200
+
3201
+ response = nil
3202
+
3203
+ synchronize do
3204
+ tag = Thread.current[:net_imap_tag] = generate_tag
3205
+ guard_against_tagged_response_skipping_handler!(tag, "IDLE")
3206
+ put_string("#{tag} IDLE#{CRLF}")
3207
+
3208
+ begin
3209
+ add_response_handler(&response_handler)
3210
+ @idle_done_cond = new_cond
3211
+ @idle_done_cond.wait(timeout)
3212
+ @idle_done_cond = nil
3213
+ if @receiver_thread_terminating
3214
+ raise @exception || Net::IMAP::Error.new("connection closed")
3215
+ end
3216
+ ensure
3217
+ remove_response_handler(response_handler)
3218
+ unless @receiver_thread_terminating
3219
+ put_string("DONE#{CRLF}")
3220
+ response = get_tagged_response(tag, "IDLE", idle_response_timeout)
3221
+ end
3222
+ end
3223
+ end
3224
+
3225
+ return response
3226
+ end
3227
+
3228
+ # Leaves IDLE, allowing #idle to return.
3229
+ #
3230
+ # If the server does not respond within
3231
+ # {config.idle_response_timeout}[rdoc-ref:Config#idle_response_timeout]
3232
+ # seconds, #idle will return +nil+.
3233
+ #
3234
+ # Related: #idle
3235
+ def idle_done
3236
+ synchronize do
3237
+ if @idle_done_cond.nil?
3238
+ raise Net::IMAP::Error, "not during IDLE"
3239
+ end
3240
+ @idle_done_cond.signal
3241
+ end
3242
+ end
3243
+
3244
+ RESPONSES_DEPRECATION_MSG =
3245
+ "Pass a type or block to #responses, " \
3246
+ "set config.responses_without_block to :frozen_dup " \
3247
+ "or :silence_deprecation_warning, " \
3248
+ "or use #extract_responses or #clear_responses."
3249
+ private_constant :RESPONSES_DEPRECATION_MSG
3250
+
3251
+ # :call-seq:
3252
+ # responses -> hash of {String => Array} (see config.responses_without_block)
3253
+ # responses(type) -> frozen array
3254
+ # responses {|hash| ...} -> block result
3255
+ # responses(type) {|array| ...} -> block result
3256
+ #
3257
+ # Yields or returns unhandled server responses. Unhandled responses are
3258
+ # stored in a hash, with arrays of UntaggedResponse#data keyed by
3259
+ # UntaggedResponse#name and <em>non-+nil+</em> untagged ResponseCode#data
3260
+ # keyed by ResponseCode#name.
3261
+ #
3262
+ # When a block is given, yields unhandled responses and returns the block's
3263
+ # result. Without a block, returns the unhandled responses.
3264
+ #
3265
+ # [With +type+]
3266
+ # Yield or return only the array of responses for that +type+.
3267
+ # When no block is given, the returned array is a frozen copy.
3268
+ # [Without +type+]
3269
+ # Yield or return the entire responses hash.
3270
+ #
3271
+ # When no block is given, the behavior is determined by
3272
+ # Config#responses_without_block:
3273
+ # >>>
3274
+ # [+:silence_deprecation_warning+ <em>(original behavior)</em>]
3275
+ # Returns the mutable responses hash (without any warnings).
3276
+ # <em>This is not thread-safe.</em>
3277
+ #
3278
+ # [+:warn+ <em>(default since +v0.5+)</em>]
3279
+ # Prints a warning and returns the mutable responses hash.
3280
+ # <em>This is not thread-safe.</em>
3281
+ #
3282
+ # [+:frozen_dup+ <em>(planned default for +v0.6+)</em>]
3283
+ # Returns a frozen copy of the unhandled responses hash, with frozen
3284
+ # array values.
3285
+ #
3286
+ # [+:raise+]
3287
+ # Raise an +ArgumentError+ with the deprecation warning.
3288
+ #
3289
+ # For example:
3290
+ #
3291
+ # imap.select("inbox")
3292
+ # p imap.responses("EXISTS").last
3293
+ # #=> 2
3294
+ # p imap.responses("UIDNEXT", &:last)
3295
+ # #=> 123456
3296
+ # p imap.responses("UIDVALIDITY", &:last)
3297
+ # #=> 968263756
3298
+ # p imap.responses {|responses|
3299
+ # {
3300
+ # exists: responses.delete("EXISTS").last,
3301
+ # uidnext: responses.delete("UIDNEXT").last,
3302
+ # uidvalidity: responses.delete("UIDVALIDITY").last,
3303
+ # }
3304
+ # }
3305
+ # #=> {:exists=>2, :uidnext=>123456, :uidvalidity=>968263756}
3306
+ # # "EXISTS", "UIDNEXT", and "UIDVALIDITY" have been removed:
3307
+ # p imap.responses(&:keys)
3308
+ # #=> ["FLAGS", "OK", "PERMANENTFLAGS", "RECENT", "HIGHESTMODSEQ"]
3309
+ #
3310
+ # Related: #extract_responses, #clear_responses, #response_handlers, #greeting
3311
+ #
3312
+ # ==== Thread safety
3313
+ # >>>
3314
+ # *Note:* Access to the responses hash is synchronized for thread-safety.
3315
+ # The receiver thread and response_handlers cannot process new responses
3316
+ # until the block completes. Accessing either the response hash or its
3317
+ # response type arrays outside of the block is unsafe. They can be safely
3318
+ # updated inside the block. Consider using #clear_responses or
3319
+ # #extract_responses instead.
3320
+ #
3321
+ # Net::IMAP will add and remove responses from the responses hash and its
3322
+ # array values, in the calling threads for commands and in the receiver
3323
+ # thread, but will not modify any responses after adding them to the
3324
+ # responses hash.
3325
+ #
3326
+ # ==== Clearing responses
3327
+ #
3328
+ # Previously unhandled responses are automatically cleared before entering a
3329
+ # mailbox with #select or #examine. Long-lived connections can receive many
3330
+ # unhandled server responses, which must be pruned or they will continually
3331
+ # consume more memory. Update or clear the responses hash or arrays inside
3332
+ # the block, or remove responses with #extract_responses, #clear_responses,
3333
+ # or #add_response_handler.
3334
+ #
3335
+ # ==== Missing responses
3336
+ #
3337
+ # Only non-+nil+ data is stored. Many important response codes have no data
3338
+ # of their own, but are used as "tags" on the ResponseText object they are
3339
+ # attached to. ResponseText will be accessible by its response types:
3340
+ # "+OK+", "+NO+", "+BAD+", "+BYE+", or "+PREAUTH+".
3341
+ #
3342
+ # TaggedResponse#data is not saved to #responses, nor is any
3343
+ # ResponseCode#data on tagged responses. Although some command methods do
3344
+ # return the TaggedResponse directly, #add_response_handler must be used to
3345
+ # handle all response codes.
3346
+ def responses(type = nil)
3347
+ if block_given?
3348
+ synchronize { yield(type ? @responses[type.to_s.upcase] : @responses) }
3349
+ elsif type
3350
+ synchronize { @responses[type.to_s.upcase].dup.freeze }
3351
+ else
3352
+ case config.responses_without_block
3353
+ when :raise
3354
+ raise ArgumentError, RESPONSES_DEPRECATION_MSG
3355
+ when :warn
3356
+ warn(RESPONSES_DEPRECATION_MSG, uplevel: 1, category: :deprecated)
3357
+ when :frozen_dup
3358
+ synchronize {
3359
+ responses = @responses.transform_values { _1.dup.freeze }
3360
+ responses.default_proc = nil
3361
+ responses.default = [].freeze
3362
+ return responses.freeze
3363
+ }
3364
+ end
3365
+ @responses
3366
+ end
3367
+ end
3368
+
3369
+ # :call-seq:
3370
+ # clear_responses -> hash
3371
+ # clear_responses(type) -> array
3372
+ #
3373
+ # Clears and returns the unhandled #responses hash or the unhandled
3374
+ # responses array for a single response +type+.
3375
+ #
3376
+ # Clearing responses is synchronized with other threads. The lock is
3377
+ # released before returning.
3378
+ #
3379
+ # Related: #extract_responses, #responses, #response_handlers
3380
+ def clear_responses(type = nil)
3381
+ synchronize {
3382
+ if type
3383
+ @responses.delete(type) || []
3384
+ else
3385
+ @responses.dup.transform_values(&:freeze)
3386
+ .tap { _1.default = [].freeze }
3387
+ .tap { @responses.clear }
3388
+ end
3389
+ }
3390
+ .freeze
3391
+ end
3392
+
3393
+ # :call-seq:
3394
+ # extract_responses(type) {|response| ... } -> array
3395
+ #
3396
+ # Yields all of the unhandled #responses for a single response +type+.
3397
+ # Removes and returns the responses for which the block returns a true
3398
+ # value.
3399
+ #
3400
+ # Extracting responses is synchronized with other threads. The lock is
3401
+ # released before returning.
3402
+ #
3403
+ # Related: #responses, #clear_responses
3404
+ def extract_responses(type)
3405
+ type = String.try_convert(type) or
3406
+ raise ArgumentError, "type must be a string"
3407
+ raise ArgumentError, "must provide a block" unless block_given?
3408
+ extracted = []
3409
+ responses(type) do |all|
3410
+ all.reject! do |response|
3411
+ extracted << response if yield response
3412
+ end
3413
+ end
3414
+ extracted
3415
+ end
3416
+
3417
+ # Returns all response handlers, including those that are added internally
3418
+ # by commands. Each response handler will be called with every new
3419
+ # UntaggedResponse, TaggedResponse, and ContinuationRequest.
3420
+ #
3421
+ # Response handlers are called with a mutex inside the receiver thread. New
3422
+ # responses cannot be processed and commands from other threads must wait
3423
+ # until all response_handlers return. An exception will shut-down the
3424
+ # receiver thread and close the connection.
3425
+ #
3426
+ # For thread-safety, the returned array is a frozen copy of the internal
3427
+ # array.
3428
+ #
3429
+ # Related: #add_response_handler, #remove_response_handler
3430
+ def response_handlers
3431
+ synchronize { @response_handlers.clone.freeze }
3432
+ end
3433
+
3434
+ # Adds a response handler. For example, to detect when
3435
+ # the server sends a new EXISTS response (which normally
3436
+ # indicates new messages being added to the mailbox),
3437
+ # add the following handler after selecting the
3438
+ # mailbox:
3439
+ #
3440
+ # imap.add_response_handler { |resp|
3441
+ # if resp.kind_of?(Net::IMAP::UntaggedResponse) and resp.name == "EXISTS"
3442
+ # puts "Mailbox now has #{resp.data} messages"
3443
+ # end
3444
+ # }
3445
+ #
3446
+ # Response handlers can also be added when the client is created before the
3447
+ # receiver thread is started, by the +response_handlers+ argument to ::new.
3448
+ # This ensures every server response is handled, including the #greeting.
3449
+ #
3450
+ # Related: #remove_response_handler, #response_handlers
3451
+ def add_response_handler(handler = nil, &block)
3452
+ raise ArgumentError, "two Procs are passed" if handler && block
3453
+ synchronize do
3454
+ @response_handlers.push(block || handler)
3455
+ end
3456
+ end
3457
+
3458
+ # Removes the response handler.
3459
+ #
3460
+ # Related: #add_response_handler, #response_handlers
3461
+ def remove_response_handler(handler)
3462
+ synchronize do
3463
+ @response_handlers.delete(handler)
3464
+ end
3465
+ end
3466
+
3467
+ private
3468
+
3469
+ CRLF = "\r\n" # :nodoc:
3470
+ PORT = 143 # :nodoc:
3471
+ SSL_PORT = 993 # :nodoc:
3472
+
3473
+ def start_imap_connection
3474
+ @greeting = get_server_greeting
3475
+ @capabilities = capabilities_from_resp_code @greeting
3476
+ @response_handlers.each do |handler| handler.call(@greeting) end
3477
+ @receiver_thread = start_receiver_thread
3478
+ rescue Exception
3479
+ state_logout!
3480
+ @sock.close
3481
+ raise
3482
+ end
3483
+
3484
+ def get_server_greeting
3485
+ greeting = get_response
3486
+ raise Error, "No server greeting - connection closed" unless greeting
3487
+ record_untagged_response_code greeting
3488
+ case greeting.name
3489
+ when "PREAUTH" then state_authenticated!
3490
+ when "BYE" then state_logout!; raise ByeResponseError, greeting
3491
+ end
3492
+ greeting
3493
+ end
3494
+
3495
+ def start_receiver_thread
3496
+ Thread.start do
3497
+ receive_responses
3498
+ rescue Exception => ex
3499
+ @receiver_thread_exception = ex
3500
+ # don't exit the thread with an exception
3501
+ end
3502
+ end
3503
+
3504
+ def tcp_socket(host, port)
3505
+ s = Socket.tcp(host, port, :connect_timeout => open_timeout)
3506
+ s.setsockopt(:SOL_SOCKET, :SO_KEEPALIVE, true)
3507
+ s
3508
+ rescue Errno::ETIMEDOUT
3509
+ raise Net::OpenTimeout, "Timeout to open TCP connection to " +
3510
+ "#{host}:#{port} (exceeds #{open_timeout} seconds)"
3511
+ end
3512
+
3513
+ def receive_responses
3514
+ connection_closed = false
3515
+ until connection_closed
3516
+ synchronize do
3517
+ @exception = nil
3518
+ end
3519
+ begin
3520
+ resp = get_response
3521
+ rescue Exception => e
3522
+ synchronize do
3523
+ state_logout!
3524
+ @sock.close
3525
+ @exception = e
3526
+ end
3527
+ break
3528
+ end
3529
+ unless resp
3530
+ synchronize do
3531
+ @exception = EOFError.new("end of file reached")
3532
+ end
3533
+ break
3534
+ end
3535
+ begin
3536
+ synchronize do
3537
+ case resp
3538
+ when TaggedResponse
3539
+ @tagged_responses[resp.tag] = resp
3540
+ @tagged_response_arrival.broadcast
3541
+ case resp.tag
3542
+ when @logout_command_tag
3543
+ state_logout!
3544
+ return
3545
+ when @continued_command_tag
3546
+ @continuation_request_exception =
3547
+ RESPONSE_ERRORS[resp.name].new(resp)
3548
+ @continuation_request_arrival.signal
3549
+ end
3550
+ when UntaggedResponse
3551
+ record_untagged_response(resp)
3552
+ if resp.name == "BYE" && @logout_command_tag.nil?
3553
+ state_logout!
3554
+ @sock.close
3555
+ @exception = ByeResponseError.new(resp)
3556
+ connection_closed = true
3557
+ end
3558
+ when ContinuationRequest
3559
+ @continuation_request_arrival.signal
3560
+ end
3561
+ state_unselected! if resp in {data: {code: {name: "CLOSED"}}}
3562
+ @response_handlers.each do |handler|
3563
+ handler.call(resp)
3564
+ end
3565
+ end
3566
+ rescue Exception => e
3567
+ @exception = e
3568
+ synchronize do
3569
+ @tagged_response_arrival.broadcast
3570
+ @continuation_request_arrival.broadcast
3571
+ end
3572
+ end
3573
+ end
3574
+ synchronize do
3575
+ @receiver_thread_terminating = true
3576
+ @tagged_response_arrival.broadcast
3577
+ @continuation_request_arrival.broadcast
3578
+ if @idle_done_cond
3579
+ @idle_done_cond.signal
3580
+ end
3581
+ end
3582
+ ensure
3583
+ state_logout!
3584
+ end
3585
+
3586
+ def get_tagged_response(tag, cmd, timeout = nil)
3587
+ if timeout
3588
+ deadline = Time.now + timeout
3589
+ end
3590
+ until @tagged_responses.key?(tag)
3591
+ raise @exception if @exception
3592
+ if timeout
3593
+ timeout = deadline - Time.now
3594
+ if timeout <= 0
3595
+ return nil
3596
+ end
3597
+ end
3598
+ @tagged_response_arrival.wait(timeout)
3599
+ end
3600
+ resp = @tagged_responses.delete(tag)
3601
+ case resp.name
3602
+ when /\A(?:OK)\z/ni
3603
+ return resp
3604
+ when /\A(?:NO)\z/ni
3605
+ raise NoResponseError, resp
3606
+ when /\A(?:BAD)\z/ni
3607
+ raise BadResponseError, resp
3608
+ else
3609
+ disconnect
3610
+ raise InvalidResponseError, "invalid tagged resp: %p" % [resp.raw_data.chomp]
3611
+ end
3612
+ end
3613
+
3614
+ def get_response
3615
+ buff = @reader.read_response_buffer
3616
+ return nil if buff.length == 0
3617
+ $stderr.print(buff.gsub(/^/n, "S: ")) if config.debug?
3618
+ @parser.parse(buff)
3619
+ end
3620
+
3621
+ #############################
3622
+ # built-in response handlers
3623
+
3624
+ # store name => [..., data]
3625
+ def record_untagged_response(resp)
3626
+ @responses[resp.name] << resp.data
3627
+ record_untagged_response_code resp
3628
+ end
3629
+
3630
+ # store code.name => [..., code.data]
3631
+ def record_untagged_response_code(resp)
3632
+ return unless resp.data.is_a?(ResponseText)
3633
+ return unless (code = resp.data.code)
3634
+ @responses[code.name] << code.data
3635
+ end
3636
+
3637
+ # NOTE: only call this for greeting, login, and authenticate
3638
+ def capabilities_from_resp_code(resp)
3639
+ return unless %w[PREAUTH OK].any? { _1.casecmp? resp.name }
3640
+ return unless (code = resp.data.code)
3641
+ return unless code.name.casecmp?("CAPABILITY")
3642
+ code.data.freeze
3643
+ end
3644
+
3645
+ #############################
3646
+
3647
+ # Calls send_command, yielding the text of each ContinuationRequest and
3648
+ # responding with each block result. Returns TaggedResponse. Raises
3649
+ # NoResponseError or BadResponseError.
3650
+ def send_command_with_continuations(cmd, *args)
3651
+ send_command(cmd, *args) do |server_response|
3652
+ if server_response.instance_of?(ContinuationRequest)
3653
+ client_response = yield server_response.data.text
3654
+ put_string(client_response + CRLF)
3655
+ end
3656
+ end
3657
+ end
3658
+
3659
+ def send_command(cmd, *args, &block)
3660
+ synchronize do
3661
+ args.each do |i|
3662
+ validate_data(i)
3663
+ end
3664
+ tag = generate_tag
3665
+ put_string(tag + " " + cmd)
3666
+ args.each do |i|
3667
+ put_string(" ")
3668
+ send_data(i, tag)
3669
+ end
3670
+ @logout_command_tag = tag if cmd == "LOGOUT"
3671
+ guard_against_tagged_response_skipping_handler!(tag, cmd)
3672
+ add_response_handler(&block) if block
3673
+ begin
3674
+ put_string(CRLF)
3675
+ get_tagged_response(tag, cmd)
3676
+ ensure
3677
+ remove_response_handler(block) if block
3678
+ end
3679
+ end
3680
+ rescue InvalidResponseError
3681
+ disconnect
3682
+ raise
3683
+ end
3684
+
3685
+ def guard_against_tagged_response_skipping_handler!(tag, cmd)
3686
+ return unless (resp = @tagged_responses[tag])&.name&.upcase == "OK"
3687
+ raise InvalidResponseError, format(
3688
+ "Received tagged 'OK' to incomplete %s command (tag=%s). " \
3689
+ "This could indicate a malicious server, a man-in-the-middle, or " \
3690
+ "client-side command injection. Disconnecting.",
3691
+ cmd, tag
3692
+ )
3693
+ end
3694
+
3695
+ def generate_tag
3696
+ @tagno += 1
3697
+ return format("%s%04d", @tag_prefix, @tagno)
3698
+ end
3699
+
3700
+ def put_string(str)
3701
+ @sock.print(str)
3702
+ if config.debug?
3703
+ if @debug_output_bol
3704
+ $stderr.print("C: ")
3705
+ end
3706
+ $stderr.print(str.gsub(/\n/n) { $'.empty? ? $& : "\nC: " })
3707
+ if /\n\z/n.match(str)
3708
+ @debug_output_bol = true
3709
+ else
3710
+ @debug_output_bol = false
3711
+ end
3712
+ end
3713
+ end
3714
+
3715
+ def enforce_logindisabled?
3716
+ may_depend_on_capabilities_cached?(config.enforce_logindisabled)
3717
+ end
3718
+
3719
+ def may_depend_on_capabilities_cached?(value)
3720
+ value == :when_capabilities_cached ? capabilities_cached? : value
3721
+ end
3722
+
3723
+ def expunge_internal(...)
3724
+ synchronize do
3725
+ send_command(...)
3726
+ expunged_array = clear_responses("EXPUNGE")
3727
+ vanished_array = extract_responses("VANISHED") { !_1.earlier? }
3728
+ if vanished_array.empty?
3729
+ expunged_array
3730
+ elsif vanished_array.length == 1
3731
+ vanished_array.first
3732
+ else
3733
+ merged_uids = SequenceSet[*vanished_array.map(&:uids)]
3734
+ VanishedData[uids: merged_uids, earlier: false]
3735
+ end
3736
+ end
3737
+ end
3738
+
3739
+ RETURN_WHOLE = /\ARETURN\z/i
3740
+ RETURN_START = /\ARETURN\b/i
3741
+ private_constant :RETURN_WHOLE, :RETURN_START
3742
+
3743
+ def search_args(keys, charset_arg = nil, return: nil, charset: nil)
3744
+ {return:} => {return: return_kw}
3745
+ case [return_kw, keys]
3746
+ in [nil, Array[RETURN_WHOLE, return_opts, *keys]]
3747
+ return_opts = convert_return_opts(return_opts)
3748
+ esearch = true
3749
+ in [nil => return_opts, RETURN_START]
3750
+ esearch = true
3751
+ in [nil => return_opts, keys]
3752
+ esearch = false
3753
+ in [_, Array[RETURN_WHOLE, _, *] | RETURN_START]
3754
+ raise ArgumentError, "conflicting return options"
3755
+ in [_, Array[RETURN_WHOLE, _, *]] # workaround for https://bugs.ruby-lang.org/issues/20956
3756
+ raise ArgumentError, "conflicting return options"
3757
+ in [_, RETURN_START] # workaround for https://bugs.ruby-lang.org/issues/20956
3758
+ raise ArgumentError, "conflicting return options"
3759
+ in [return_opts, keys]
3760
+ return_opts = convert_return_opts(return_opts)
3761
+ esearch = true
3762
+ end
3763
+ if charset && charset_arg
3764
+ raise ArgumentError, "multiple charset arguments"
3765
+ end
3766
+ charset ||= charset_arg
3767
+ # NOTE: not handling combined RETURN and CHARSET for raw strings
3768
+ if charset && keys in /\ACHARSET\b/i | Array[/\ACHARSET\z/i, *]
3769
+ raise ArgumentError, "multiple charset arguments"
3770
+ end
3771
+ args = normalize_searching_criteria(keys)
3772
+ args.prepend("CHARSET", charset) if charset
3773
+ args.prepend("RETURN", return_opts) if return_opts
3774
+ return args, esearch
3775
+ end
3776
+
3777
+ def convert_return_opts(unconverted)
3778
+ return_opts = Array.try_convert(unconverted) or
3779
+ raise TypeError, "expected return options to be Array, got %s" % [
3780
+ unconverted.class
3781
+ ]
3782
+ return_opts.map {|opt|
3783
+ case opt
3784
+ when Symbol then opt.to_s
3785
+ when PartialRange::Negative then PartialRange[opt]
3786
+ when Range then SequenceSet[opt]
3787
+ else opt
3788
+ end
3789
+ }
3790
+ end
3791
+
3792
+ def search_internal(cmd, ...)
3793
+ args, esearch = search_args(...)
3794
+ synchronize do
3795
+ tagged = send_command(cmd, *args)
3796
+ tag = tagged.tag
3797
+ # Only the last ESEARCH or SEARCH is used. Excess results are ignored.
3798
+ esearch_result = extract_responses("ESEARCH") {|response|
3799
+ response in ESearchResult(tag: ^tag)
3800
+ }.last
3801
+ search_result = clear_responses("SEARCH").last
3802
+ if esearch_result
3803
+ # silently ignore SEARCH results, if any
3804
+ esearch_result
3805
+ elsif search_result
3806
+ # warn EXPECTED_ESEARCH_RESULT if esearch
3807
+ search_result
3808
+ elsif esearch
3809
+ # warn NO_SEARCH_RESPONSE
3810
+ ESearchResult[tag:, uid: cmd.start_with?("UID ")]
3811
+ else
3812
+ # warn NO_SEARCH_RESPONSE
3813
+ SearchResult[]
3814
+ end
3815
+ end
3816
+ end
3817
+
3818
+ def fetch_internal(cmd, set, attr, mod = nil, partial: nil, changedsince: nil)
3819
+ if partial && !cmd.start_with?("UID ")
3820
+ raise ArgumentError, "partial can only be used with uid_fetch"
3821
+ end
3822
+ set = SequenceSet[set]
3823
+ if partial
3824
+ mod ||= []
3825
+ mod << "PARTIAL" << PartialRange[partial]
3826
+ end
3827
+ if changedsince
3828
+ mod ||= []
3829
+ mod << "CHANGEDSINCE" << Integer(changedsince)
3830
+ end
3831
+ case attr
3832
+ when String then
3833
+ attr = RawData.new(attr)
3834
+ when Array then
3835
+ attr = attr.map { |arg|
3836
+ arg.is_a?(String) ? RawData.new(arg) : arg
3837
+ }
3838
+ end
3839
+
3840
+ args = [cmd, set, attr]
3841
+ args << mod if mod
3842
+ send_command_returning_fetch_results(*args)
3843
+ end
3844
+
3845
+ def store_internal(cmd, set, attr, flags, unchangedsince: nil)
3846
+ attr = Atom.new(attr) if attr.instance_of?(String)
3847
+ args = [SequenceSet.new(set)]
3848
+ args << ["UNCHANGEDSINCE", Integer(unchangedsince)] if unchangedsince
3849
+ args << attr << flags
3850
+ send_command_returning_fetch_results(cmd, *args)
3851
+ end
3852
+
3853
+ def send_command_returning_fetch_results(...)
3854
+ synchronize do
3855
+ clear_responses("FETCH")
3856
+ clear_responses("UIDFETCH")
3857
+ send_command(...)
3858
+ fetches = clear_responses("FETCH")
3859
+ uidfetches = clear_responses("UIDFETCH")
3860
+ uidfetches.any? ? uidfetches : fetches
3861
+ end
3862
+ end
3863
+
3864
+ def copy_internal(cmd, set, mailbox)
3865
+ send_command(cmd, SequenceSet.new(set), mailbox)
3866
+ end
3867
+
3868
+ def sort_internal(cmd, sort_keys, search_keys, charset)
3869
+ search_keys = normalize_searching_criteria(search_keys)
3870
+ synchronize do
3871
+ send_command(cmd, sort_keys, charset, *search_keys)
3872
+ clear_responses("SORT").last || []
3873
+ end
3874
+ end
3875
+
3876
+ def thread_internal(cmd, algorithm, search_keys, charset)
3877
+ search_keys = normalize_searching_criteria(search_keys)
3878
+ synchronize do
3879
+ send_command(cmd, algorithm, charset, *search_keys)
3880
+ clear_responses("THREAD").last || []
3881
+ end
3882
+ end
3883
+
3884
+ def normalize_searching_criteria(criteria)
3885
+ return [RawData.new(criteria)] if criteria.is_a?(String)
3886
+ criteria.map {|i|
3887
+ if coerce_search_arg_to_seqset?(i)
3888
+ SequenceSet[i]
3889
+ else
3890
+ i
3891
+ end
3892
+ }
3893
+ end
3894
+
3895
+ def coerce_search_arg_to_seqset?(obj)
3896
+ case obj
3897
+ when Set, -1, :* then true
3898
+ when Range then true
3899
+ when Array then obj.all? { coerce_search_array_arg_to_seqset? _1 }
3900
+ else obj.respond_to?(:to_sequence_set)
3901
+ end
3902
+ end
3903
+
3904
+ def coerce_search_array_arg_to_seqset?(obj)
3905
+ case obj
3906
+ when Integer then obj.positive? || obj == -1
3907
+ when String then ResponseParser::Patterns::SEQUENCE_SET_STR.match?(obj.b)
3908
+ else
3909
+ coerce_search_arg_to_seqset?(obj)
3910
+ end
3911
+ end
3912
+
3913
+ def build_ssl_ctx(ssl)
3914
+ if ssl
3915
+ params = (Hash.try_convert(ssl) || {}).freeze
3916
+ context = OpenSSL::SSL::SSLContext.new
3917
+ context.set_params(params)
3918
+ context.setup
3919
+ [params, context]
3920
+ else
3921
+ false
3922
+ end
3923
+ end
3924
+
3925
+ def start_tls_session
3926
+ raise "SSL extension not installed" unless defined?(OpenSSL::SSL)
3927
+ raise "already using SSL" if @sock.kind_of?(OpenSSL::SSL::SSLSocket)
3928
+ raise "cannot start TLS without SSLContext" unless ssl_ctx
3929
+ @sock = OpenSSL::SSL::SSLSocket.new(@sock, ssl_ctx)
3930
+ @reader = ResponseReader.new(self, @sock)
3931
+ @sock.sync_close = true
3932
+ @sock.hostname = @host if @sock.respond_to? :hostname=
3933
+ ssl_socket_connect(@sock, open_timeout)
3934
+ if ssl_ctx.verify_mode != OpenSSL::SSL::VERIFY_NONE
3935
+ @sock.post_connection_check(@host)
3936
+ @tls_verified = true
3937
+ end
3938
+ end
3939
+
3940
+ def state_authenticated!(resp = nil)
3941
+ synchronize do
3942
+ @capabilities = capabilities_from_resp_code resp if resp
3943
+ @connection_state = ConnectionState::Authenticated.new
3944
+ end
3945
+ end
3946
+
3947
+ def state_selected!
3948
+ synchronize do
3949
+ @connection_state = ConnectionState::Selected.new
3950
+ end
3951
+ end
3952
+
3953
+ def state_unselected!
3954
+ synchronize do
3955
+ state_authenticated! if connection_state.to_sym == :selected
3956
+ end
3957
+ end
3958
+
3959
+ def state_logout!
3960
+ return true if connection_state in [:logout, *]
3961
+ synchronize do
3962
+ return true if connection_state in [:logout, *]
3963
+ @connection_state = ConnectionState::Logout.new
3964
+ end
3965
+ end
3966
+
3967
+ # don't wait to aqcuire the lock
3968
+ def try_state_logout?
3969
+ return true if connection_state in [:logout, *]
3970
+ return false unless acquired_lock = mon_try_enter
3971
+ state_logout!
3972
+ true
3973
+ ensure
3974
+ mon_exit if acquired_lock
3975
+ end
3976
+
3977
+ def sasl_adapter
3978
+ SASLAdapter.new(self, &method(:send_command_with_continuations))
3979
+ end
3980
+
3981
+ #--
3982
+ # We could get the saslprep method by extending the SASLprep module
3983
+ # directly. It's done indirectly, so SASLprep can be lazily autoloaded,
3984
+ # because most users won't need it.
3985
+ #++
3986
+ # Delegates to Net::IMAP::StringPrep::SASLprep#saslprep.
3987
+ def self.saslprep(string, **opts)
3988
+ Net::IMAP::StringPrep::SASLprep.saslprep(string, **opts)
3989
+ end
3990
+
3991
+ end
3992
+ end
3993
+
3994
+ require_relative "imap/errors"
3995
+ require_relative "imap/config"
3996
+ require_relative "imap/command_data"
3997
+ require_relative "imap/data_encoding"
3998
+ require_relative "imap/flags"
3999
+ require_relative "imap/response_data"
4000
+ require_relative "imap/response_parser"
4001
+ require_relative "imap/authenticators"
4002
+
4003
+ require_relative "imap/deprecated_client_options"
4004
+ Net::IMAP.prepend Net::IMAP::DeprecatedClientOptions