Skip to content

Instantly share code, notes, and snippets.

@ctm
Created February 28, 2016 19:42
Show Gist options
  • Save ctm/63e92e5dbc15e3574dec to your computer and use it in GitHub Desktop.
Save ctm/63e92e5dbc15e3574dec to your computer and use it in GitHub Desktop.
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rails', github: 'rails/rails'
# gem 'rails', github: 'ctm/rails', branch: :remove_pathological_regexp
end
require 'active_record/log_subscriber'
require 'minitest/autorun'
require 'timeout'
class BugTest < Minitest::Test
# The following string is from a real application where we use PaperTrail
# to log changes to a binary column that contains JSON. Proprietary
# information has been replaced by "x"s. I'm sure a much simpler test
# case can be created, but I'm hoping that the problem and solution are
# sufficiently obvious that this will suffice.
PROBLEM_STRING = "INSERT INTO `versions` (`item_type`, `item_id`, `event`, `created_at`, `object_changes`) VALUES ('ImportDatum', 51, 'create', '2016-02-28 17:56:59', '---\\nid:\\n- \\n- 51\\nbody:\\n- \\n- !ruby/object:ActiveModel::Type::Binary::Data\\n value: \\\"{\\\\n\\\\t\\\\\\\"envelope\\\\\\\": {\\\\n\\\\t\\\\t\\\\\\\"header\\\\\\\": {\\\\n\\\\t\\\\t\\\\t\\\\\\\"certSourceId\\\\\\\": \\\\\\\"1\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\\\\"certDate\\\\\\\":\\n \\\\\\\"2016-01-27\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\\\\"country\\\\\\\": \\\\\\\"US\\\\\\\"\\\\n\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\\\\"body\\\\\\\": {\\\\n\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxxxxxxxxx\\\\\\\":\\n {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxx\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxxxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxxxxxxxxx\\\\\\\": {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": [{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxxxx xxx xxxxxxxxxxx xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xx xxxx xxxxxxx xxxxxxxxxx xxx xx xxx xxxxxxxxx:\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxx xxxx xxxxx:\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxxxxxxxxx xxxx xx xxxxxx xxx xxxxx-xxxxxx xxxxxxxxx xxxxxx xxxxx\\n xxxxxxxxxx xxxx xxxxx xxxxxxxxxxxxx xxxxxxxxx xxxxxxxxxxxxx xxxxxxxxx xx xxxxxxxx\\n xxxxxxx xxxxxxxxxxxxx xxxxx xxxxxx xxxx xx xxxxxxxx xxxxxxx xxx xxxx xxxxx xxxxxxxx\\n xxxxxxxxxxxxx xxxxxxxxxxxx (xxxxxxx xxxx) xxx xxxxxxxxxxx xxxxx xxxxxxx xxxxxxxxxxxxxx\\n xxxxxx xxxxx xxxxxxxx xxxxxx xxxxxxxxxxxxx xxxxx xxxxx xxxxxxxxxxxxx (xxx) xx\\n xxxxxxxxxxxxxx xxxxx xxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xxxx xxx xxxxxxx xxxxxx xxxx xxxx\\n xxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx xxx xxxxxxx xxxx x xxxxxxxxxxxx\\n xxxxxx xxxx xxx xxxxxxxxxxxxx xxxxxxxxxx xxxxxx (xxx)?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xx xxxxxxx xx xxxx xxxxxxxxxx xx xxx xxxxxx selectxx xxxxx. x xxxxxxxxxx xxxx\\n xxx xxxxxxxx xxx xxx xx xxxxxxxxx xx xxxx xx xxxxxxx xx xxx xxxxx xxxxx xx xxxxxxx\\n xxx xxx xxxx xxxxxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxxx xxx xxxxxxxx xxxx xxxxxxx xxxxxxxx\\n xxxxxx xxx xxx xxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx xxx xxxxxxx xxxx x <xxx xxx=\\'../xxxxxx/xxxxxxxxxxx.xxx\\'\\n />(xxxxxx xxxxxx) xxxxxx xxx xxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxxxxxx xxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x/x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxx xxxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxx xxxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxx xxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxx xxxxxx xxxxxx xxxxxxxx\\n xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxxxxxxxxxxx xxxxxxxx xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx xxxxx xxxx xx xxxxx xxxxxx xx xxxxx,\\n xxxx xxxx xxxxxxx x xxxxxxxx xxxx x xx xxxx xxxx xx xxxxx xx x xx xxxxxxx xxxx\\n xx xxxxx xx xx.x?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx select xxx xxxx xxxxxxxxxxx xx xxxx\\n xxxxxxx\\'x xxxxxxx xxxxxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx xxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxx xxxx xxxxxxxxxxxxxx xxxx xx xxxx\\n xxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxx xxxx xxxxxxxxxxx xx xxxx xxxxxxx\\'x\\n xxxxx xxxxxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxxx xxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xx xxx xxxxxxx xxxxxxxxx xxx xxxxxxxxx\\n (xxxxxx xxxxxxxxxx xx xxxxxxxxxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxxxx, xxx xxxxxxxxx, xxx xxxxxxx\\n xxxxxx xxxxxxx xxxxx xxxxx xx xxxx xxxxxxx. xx xxxxxxxx xxxxxxx xxxxxxx xxxxx,\\n xxx xxx xxxx xxx xxxxxxxx xxxx xxxx x xxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx x-xxxxxxxxx xxx xxxxxxxxxxxxxx xxxxxx\\n xxx xxxxxxxxx (xxxxxxx: xxxxxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxx xxxxxxxx xxxx (xxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxxx xxxx (xx xxxxxxxxxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"select xxxxxx xxxxx (xx xxxxxxxxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x.x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"select xxxxxxx xxxxx (xx xxxxxxxxx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx xx xxxx xxxxxxx\\'x xxxxxxxxxxx xxx selectxxx,\\n xxxx xxxxxxx xxx xx xxxxxxx xx xxx (xxxxxxxx xxxxxxx xxxxxxxx) xxxxxxxxxxx xx\\n xxxx xxxxx xx xxx x.x. xxxxxx xxxxxx xxx xxxx xxxxxxxx xxxxx, xxx xxx xxxxxxxxxxx\\n xxx xxx xxxxxxxxxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xx xxxxxxx xxxxxxxxxx xxxxx xxxx xxx xxxxxx\\n xxxxxxxx xxxx (xx xxx xxxx.xxxx)?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxxxxxxxx xxxxxxxxxxx, (°x)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxx xxxxxxxx xxxxxx, (xx)\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxxxxxxx xx xxxxxxx/xxxxx xxxxxxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xxxxx xxx xxxxxxxxxx xxxxxxxx xx\\n xxxxxxxxxxx xxx xxxxx xxxx xx xxxxxxx xxxxx xxxx xxxxxxx xxxxxxxxxxxx xxxxx xxx\\n xxxxxx xx xxxxxxxxxx xxx xxxxxxxxxx xxx xxxxxxxx xxxxxx? xx xx, xxxxxx xxxxxxx\\n xxxx.\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}]\\\\n\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxxxxxxxxxx\\\\\\\":\\n {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": [{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx xx xxx xxxxxxxxx xxxxxxxxx xxxx xxxxxxx\\'x xxxxxxxxxxxxx xxxxxxxxxx xxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxxxxxxxxx xxxxxx xxxx xxxxxxxx xxxxxxxx xxxxxxx xxxxxxxxxxx xx xxxxxxxxxx\\n xxxxxxxxxx xxxx xxxxx xx xxxxxxxxxxxxx xxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxxxxxxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxx xxxx xxxx xxxxxxx xxxxxxx xxx xxxxxxxxxxxxx xxxxxxx xx xxxx xxxxxx xxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxx xxxxx xxxxxx xxxx xxxxxxxx xxxxxxxx xxxxxxx xxxxxxxxxxx xx xxxxxxxxxx\\n xxxxxxxxx xxxxxxxx xxxx xx xxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxx xxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx xx xxx xxxxxxxxx xxxxxxxxx xxxx xxxxxxx\\'x xxxxxxxx xx xxxxxxxxxx xxxxx\\n xxxxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxx xxxxxxxxxxxx xxxxxx xxxxxxxxxx\\n xxxxx xxx xxx xxxxxxxxx xxxxxxxxx xxx xxxxx xxxxxxx xxxxxxx xxxxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx xx xxx xxxxxxxxx xxxxxxxxx xxxx xxxxxxx\\'x xxxxxxxx xx xxxxxxxxxx xxx xxx\\n xx xxxxxxxx xxxxxxxxx xxxxxx xxxx xxxxxxxx xxxxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxxxxxxx xxxxxxxxx xxx xxxxxxxxx xxxxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxxxxxxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx xxxx xxxxxxx xxxx x xxxxxx xxxxxx xxxxxxxxxxxxxx xxxx xxx xxxxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx xxxxxxxxx xxxxxxxxxxxxxx xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx xx xxx xxxxxxxxx xxxxxxxxx xxxx xxxxxxx\\'x xxxxxxxx xx xxxxxxxxxx xxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxx xxxxxx xxxxxxxxxx xxxxxx xxxxxxxxxx xxx xxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx xxxxxxxxxx xx xxxxxx xxxx xx xxxx xxxxxxx xxxxx xxxx xxxxxxxxx xxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx xx xxx xxxxxxxxx xxxxxxxxx xxxx xxxxxxx\\'x xxxxxxxx xx xxxxxxxx xxxxx xxxxx\\n xxxxx (xxx) xxx xxxxxxxxxx xxxxxxx xxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx\\n xxxxxxx xxxxxx xxxxxxxxx xxxxxxxx xx xxxxxxxx xxxx xxxxxxxx xxxxxxx xxxxxx (x.x.\\n xxxxxx-xxxxxx xxxxxxxxxxx xx xxx xx xxxxxx xxxxxxx)\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xx xxxx xxxxxxx xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx.xxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxx xxxx xxxxxxx xxxxxx xxxxxxxxx xx xxx xxxxxx xxxxxxxxxx xxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxxxx xxxxxxx xxxx xxxxxxx xxxx xxx xx xxx xxxxxxxxx xxxxxxxxx xxxxxx xxx\\n xxxxxxxxxxx xx x xxxxxxxxxxx xxxxxxxxxx xx xxxx xxxxxxxx (xx% xx xxxxxxx):\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxxx xxxxxxxxxxx xxxxxxx xxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xxxx xxxx xxxxxxx xxxxxxxx xxxxx xxxxxxxxxxxx\\n xx xxxxxxxxx xx xxxx xxxxxxx?\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx xxxxxxxxxxxxx xxxxxxxxx xx xxxx\\n xxxxxxx xxxx xxxxxxxxx xx xxxxxxx xxx xx xxxxx xxx xxxxxxxxx?\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxx xxxxx (xxxxxxxxxx xxxxx)\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xx xxxx xxxxxxx xxx xxxx xxxxxxxxx xx\\n xx xxx xxxxxxxx, xxxxxxx xxx xxxxx xx xxx xxxxxxxxxxxxx:\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxxx xx xxxxxxxx xxxxxxxxxx xxxxxxxxx xx xxxxxxxxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxx xxxx xxxxxxx xxxx xxxxxxxxx xx xxx\\n xx xxx xxxxxxxxx xxxxxxxx:\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\":\\n \\\\\\\"xxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": \\\\\\\"xxxx xxx xxxxx xxxxxxx-xxxxx xxxxxxxxxxxxxx\\n xxx xxxx xxxxxxxx:\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}]\\\\n\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxxx\\\\\\\":\\n {\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxxxxxx\\\\\\\": [{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\": \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\":\\n \\\\\\\"xxxxxx xxxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxx xxxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx/xxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx xxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx\\'x xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xx xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx xxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx xxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx xxxx xxx xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx\\'x xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"x\\'xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxx-xxxx xxxx xxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxx xxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx/xxxxxx x xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxx-xxxx xxxxxxxxx xx .?xx\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xx\\\\\\\":\\n \\\\\\\"xxxxxxxx\\\\\\\",\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\t\\\\\\\"xxxx\\\\\\\": \\\\\\\"xxxxxxx xxxxxxxxx xx .?x\\\\\\\"\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t}]\\\\n\\\\t\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t\\\\t}\\\\n\\\\t\\\\t}\\\\n\\\\t}\\\\n}\\\"\\nstatus:\\n- \\n- 4\\ncreated_at:\\n- \\n- 2016-02-28 17:56:59.000000000 Z\\nupdated_at:\\n- \\n- 2016-02-28 17:56:59.000000000 Z\\n')".freeze
# The following timeout is arbitrary. The above string takes more
# than 30 seconds to colorize on my development machine, so TIMEOUT can
# be made much larger, but slow tests are annoying.
TIMEOUT = 0.1
def test_sql_color_regexp
log_subscriber = ActiveRecord::LogSubscriber.new
begin
Timeout::timeout(TIMEOUT) do
color = log_subscriber.instance_eval { sql_color(PROBLEM_STRING) }
assert_equal ActiveRecord::LogSubscriber::GREEN, color
end
rescue Timeout::Error
flunk "Took more than #{TIMEOUT} seconds to colorize"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment