Created
November 29, 2022 18:55
-
-
Save kgilpin/82a8032d02db72741a2c052f3c23516c to your computer and use it in GitHub Desktop.
Example files from blog post "Generate sequence diagrams from runtime code analysis"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"events": [ | |
{ | |
"id": 1, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Integration::Runner", | |
"method_id": "before_setup", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/testing/integration.rb", | |
"lineno": 320, | |
"static": false, | |
"receiver": { | |
"class": "FollowingTest", | |
"object_id": 189320, | |
"value": "#<FollowingTest:0x00007fd8e254e490>" | |
} | |
}, | |
{ | |
"id": 2, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189360, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 32400, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e30a8c28>" | |
} | |
}, | |
{ | |
"id": 3, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 2, | |
"elapsed": 0.0000019999570213258266, | |
"elapsed_instrumentation": 0.00005100003909319639 | |
}, | |
{ | |
"id": 4, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189360, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 32400, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e30a8c28>" | |
} | |
}, | |
{ | |
"id": 5, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 4, | |
"elapsed": 0.000008000002708286047, | |
"elapsed_instrumentation": 0.00004600000102072954, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e30a8548 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 32440, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 6, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189380, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[36mbegin transaction\u001b[0m\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 7, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 6, | |
"elapsed": 0.00003100000321865082, | |
"elapsed_instrumentation": 0.00005100003909319639, | |
"return_value": { | |
"class": "Integer", | |
"value": "56", | |
"object_id": 113 | |
} | |
}, | |
{ | |
"id": 8, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "begin transaction", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 9, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 8, | |
"elapsed": 0.000193, | |
"elapsed_instrumentation": 0.00002500001573935151 | |
}, | |
{ | |
"id": 10, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189400, | |
"value": "----------------------------------\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 11, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 10, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.000040000013541430235, | |
"return_value": { | |
"class": "Integer", | |
"value": "35", | |
"object_id": 71 | |
} | |
}, | |
{ | |
"id": 12, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189420, | |
"value": "FollowingTest: test_followers_page\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 13, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 12, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.00003200001083314419, | |
"return_value": { | |
"class": "Integer", | |
"value": "35", | |
"object_id": 71 | |
} | |
}, | |
{ | |
"id": 14, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189440, | |
"value": "----------------------------------\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 15, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 14, | |
"elapsed": 0.000009000010322779417, | |
"elapsed_instrumentation": 0.000029999995604157448, | |
"return_value": { | |
"class": "Integer", | |
"value": "35", | |
"object_id": 71 | |
} | |
}, | |
{ | |
"id": 16, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189460, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33500, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd902374870>" | |
} | |
}, | |
{ | |
"id": 17, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 16, | |
"elapsed": 0.000034999975468963385, | |
"elapsed_instrumentation": 0.00004700000863522291, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd902374460 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd9023745c8 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 33520, | |
"size": 2 | |
} | |
}, | |
{ | |
"id": 18, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189460, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33500, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd902374870>" | |
} | |
}, | |
{ | |
"id": 19, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 18, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000027999980375170708 | |
}, | |
{ | |
"id": 20, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 1, | |
"elapsed": 0.000863000052049756, | |
"elapsed_instrumentation": 0.0000790000194683671, | |
"return_value": { | |
"class": "TrueClass", | |
"value": "true", | |
"object_id": 20 | |
} | |
}, | |
{ | |
"id": 21, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveRecord::Relation", | |
"method_id": "records", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activerecord-6.0.4.1/lib/active_record/relation.rb", | |
"lineno": 249, | |
"static": false, | |
"receiver": { | |
"class": "ActiveRecord::Relation", | |
"object_id": 189480, | |
"value": "#<User::ActiveRecord_Relation:0x00007fd8e2536980>" | |
} | |
}, | |
{ | |
"id": 22, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189500, | |
"value": " \u001b[1m\u001b[36mUser Load (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMI (...43 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 23, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 22, | |
"elapsed": 0.000013999990187585354, | |
"elapsed_instrumentation": 0.00004600000102072954, | |
"return_value": { | |
"class": "Integer", | |
"value": "143", | |
"object_id": 287 | |
} | |
}, | |
{ | |
"id": 24, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 25, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 24, | |
"elapsed": 0.000207, | |
"elapsed_instrumentation": 0.00001799996243789792 | |
}, | |
{ | |
"id": 26, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 21, | |
"elapsed": 0.000450999999884516, | |
"elapsed_instrumentation": 0.00004700000863522291, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<User:0x00007fd8e252f860>]", | |
"object_id": 189520, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 27, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveRecord::Relation", | |
"method_id": "records", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activerecord-6.0.4.1/lib/active_record/relation.rb", | |
"lineno": 249, | |
"static": false, | |
"receiver": { | |
"class": "ActiveRecord::Relation", | |
"object_id": 189540, | |
"value": "#<User::ActiveRecord_Relation:0x00007fd8e252e9d8>" | |
} | |
}, | |
{ | |
"id": 28, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189560, | |
"value": " \u001b[1m\u001b[36mUser Load (0.0ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMI (...43 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 29, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 28, | |
"elapsed": 0.000013999990187585354, | |
"elapsed_instrumentation": 0.000042000028770416975, | |
"return_value": { | |
"class": "Integer", | |
"value": "143", | |
"object_id": 287 | |
} | |
}, | |
{ | |
"id": 30, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 31, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 30, | |
"elapsed": 0.000131, | |
"elapsed_instrumentation": 0.000014999997802078724 | |
}, | |
{ | |
"id": 32, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 27, | |
"elapsed": 0.0003819999983534217, | |
"elapsed_instrumentation": 0.00004800001624971628, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<User:0x00007fd8e257fe00>]", | |
"object_id": 189580, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 33, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189600, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33680, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd9023975c8>" | |
} | |
}, | |
{ | |
"id": 34, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 33, | |
"elapsed": 0.0010580000234767795, | |
"elapsed_instrumentation": 0.00008699996396899223, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd902396bf0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902396dd0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902396f38 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902397118 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902397348 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 33900, | |
"size": 5 | |
} | |
}, | |
{ | |
"id": 35, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189600, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33680, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd9023975c8>" | |
} | |
}, | |
{ | |
"id": 36, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 35, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000037999998312443495 | |
}, | |
{ | |
"id": 37, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack", | |
"path": "<internal:pack>", | |
"lineno": 256, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 33940, | |
"value": "NnnnnN", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 189620, | |
"value": "_|___`___\u001eF_p_G_" | |
} | |
}, | |
{ | |
"id": 38, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 37, | |
"elapsed": 0.00000400003045797348, | |
"elapsed_instrumentation": 0.000058999983593821526, | |
"return_value": { | |
"class": "Array", | |
"value": "[3061642637, 43616, 40334, 40990, 18158, 1894205403]", | |
"object_id": 189640, | |
"size": 6 | |
} | |
}, | |
{ | |
"id": 39, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189660, | |
"value": "Started POST \"/login\" for 127.0.0.1 at 2022-11-27 18:05:25 -0500\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 40, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 39, | |
"elapsed": 0.00002400000812485814, | |
"elapsed_instrumentation": 0.0000439999857917428, | |
"return_value": { | |
"class": "Integer", | |
"value": "65", | |
"object_id": 131 | |
} | |
}, | |
{ | |
"id": 41, | |
"event": "call", | |
"thread_id": 4280, | |
"http_server_request": { | |
"request_method": "POST", | |
"path_info": "/login", | |
"normalized_path_info": "/login", | |
"headers": { | |
"Host": "www.example.com", | |
"Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", | |
"Content-Type": "application/x-www-form-urlencoded", | |
"Content-Length": "86" | |
} | |
}, | |
"message": [ | |
{ | |
"name": "session", | |
"class": "ActiveSupport::HashWithIndifferentAccess", | |
"value": "{email=>[email protected], password=>[FILTERED], remember_me=>1}", | |
"object_id": 193500, | |
"properties": [ | |
{ | |
"name": "email", | |
"class": "String" | |
}, | |
{ | |
"name": "password", | |
"class": "String" | |
}, | |
{ | |
"name": "remember_me", | |
"class": "String" | |
} | |
] | |
}, | |
{ | |
"name": "controller", | |
"class": "String", | |
"value": "sessions", | |
"object_id": 77540 | |
}, | |
{ | |
"name": "action", | |
"class": "String", | |
"value": "create", | |
"object_id": 77560 | |
} | |
] | |
}, | |
{ | |
"id": 42, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionController::Instrumentation", | |
"method_id": "process_action", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/instrumentation.rb", | |
"lineno": 19, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "args", | |
"class": "Array", | |
"object_id": 189700, | |
"value": "[create]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "SessionsController", | |
"object_id": 189720, | |
"value": "#<SessionsController:0x00007fd8d22921f8>" | |
} | |
}, | |
{ | |
"id": 43, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189740, | |
"value": "Processing by SessionsController#create as HTML\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 44, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 43, | |
"elapsed": 0.000031999952625483274, | |
"elapsed_instrumentation": 0.00005500001134350896, | |
"return_value": { | |
"class": "Integer", | |
"value": "48", | |
"object_id": 97 | |
} | |
}, | |
{ | |
"id": 45, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189760, | |
"value": " Parameters: {\"session\"=>{\"email\"=>\"[email protected]\", \"password\"=>\"[FILTERED]\", \"remember_me\"=> (...6 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 46, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 45, | |
"elapsed": 0.000012000033166259527, | |
"elapsed_instrumentation": 0.000035999983083456755, | |
"return_value": { | |
"class": "Integer", | |
"value": "106", | |
"object_id": 213 | |
} | |
}, | |
{ | |
"id": 47, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189780, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 74860, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e22fcfc0>" | |
} | |
}, | |
{ | |
"id": 48, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 8406428, | |
"value": ":_turbolinks_location", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 189800, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd8d22936c0>" | |
} | |
}, | |
{ | |
"id": 49, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "update", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 333, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "other_hash", | |
"class": "Hash", | |
"object_id": 189820, | |
"value": "{}", | |
"kind": "req", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 189840, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>" | |
} | |
}, | |
{ | |
"id": 50, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 49, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000055999960750341415, | |
"return_value": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>", | |
"object_id": 189840 | |
} | |
}, | |
{ | |
"id": 51, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 317, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 41900, | |
"value": "_sample_app_session", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 189840, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>" | |
} | |
}, | |
{ | |
"id": 52, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 51, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00002900004619732499 | |
}, | |
{ | |
"id": 53, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 48, | |
"elapsed": 0.0003309999592602253, | |
"elapsed_instrumentation": 0.00003300001844763756 | |
}, | |
{ | |
"id": 54, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 47, | |
"elapsed": 0.0005119999987073243, | |
"elapsed_instrumentation": 0.000063000014051795, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e22fc7a0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e22fcb60 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e22fcd18 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 74940, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 55, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsController", | |
"method_id": "create", | |
"path": "app/controllers/sessions_controller.rb", | |
"lineno": 9, | |
"static": false, | |
"receiver": { | |
"class": "SessionsController", | |
"object_id": 189720, | |
"value": "#<SessionsController:0x00007fd8d22921f8>" | |
} | |
}, | |
{ | |
"id": 56, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 189860, | |
"value": " \u001b[1m\u001b[36mUser Load (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" WHERE \"users\".\"email\" = ? L (...61 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 57, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 56, | |
"elapsed": 0.00002099998528137803, | |
"elapsed_instrumentation": 0.00004499999340623617, | |
"return_value": { | |
"class": "Integer", | |
"value": "161", | |
"object_id": 323 | |
} | |
}, | |
{ | |
"id": 58, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"email\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 59, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 58, | |
"elapsed": 0.000207, | |
"elapsed_instrumentation": 0.000027999980375170708 | |
}, | |
{ | |
"id": 60, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 11640668, | |
"value": ":forwarding_url", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 189800, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd8d22936c0>" | |
} | |
}, | |
{ | |
"id": 61, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 60, | |
"elapsed": 0.000008000002708286047, | |
"elapsed_instrumentation": 0.000043000036384910345 | |
}, | |
{ | |
"id": 62, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "destroy", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 79, | |
"static": false, | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 189800, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd8d22936c0>" | |
} | |
}, | |
{ | |
"id": 63, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "clear", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 137, | |
"static": false, | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 189800, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd8d22936c0>" | |
} | |
}, | |
{ | |
"id": 64, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack", | |
"path": "<internal:pack>", | |
"lineno": 256, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 42120, | |
"value": "H*", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 189880, | |
"value": "\u0011____\u0011_sTT___1\u000f_" | |
} | |
}, | |
{ | |
"id": 65, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 64, | |
"elapsed": 0.0000029999646358191967, | |
"elapsed_instrumentation": 0.00004700000863522291, | |
"return_value": { | |
"class": "Array", | |
"value": "[11afed8fba1190735454bfdca9310ffc]", | |
"object_id": 189900, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 66, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 63, | |
"elapsed": 0.00007700000423938036, | |
"elapsed_instrumentation": 0.00002300000051036477 | |
}, | |
{ | |
"id": 67, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack", | |
"path": "<internal:pack>", | |
"lineno": 256, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 42120, | |
"value": "H*", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 189940, | |
"value": "___T_1___\u0012_='8__" | |
} | |
}, | |
{ | |
"id": 68, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 67, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000034999975468963385, | |
"return_value": { | |
"class": "Array", | |
"value": "[fda2e954db318bc48712f13d2738acbb]", | |
"object_id": 189960, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 69, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 62, | |
"elapsed": 0.00015599996550008655, | |
"elapsed_instrumentation": 0.00002600002335384488, | |
"return_value": { | |
"class": "TrueClass", | |
"value": "true", | |
"object_id": 20 | |
} | |
}, | |
{ | |
"id": 70, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "log_in", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 189980, | |
"value": "#<User:0x00007fd90226c838>", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "SessionsController", | |
"object_id": 189720, | |
"value": "#<SessionsController:0x00007fd8d22921f8>" | |
} | |
}, | |
{ | |
"id": 71, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]=", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 131, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
}, | |
{ | |
"name": "value", | |
"class": "Integer", | |
"object_id": 1524292223, | |
"value": "762146111", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 189800, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd8d22936c0>" | |
} | |
}, | |
{ | |
"id": 72, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 71, | |
"elapsed": 0.00000300002284348011, | |
"elapsed_instrumentation": 0.000032999960239976645, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 73, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 70, | |
"elapsed": 0.00005099998088553548, | |
"elapsed_instrumentation": 0.00004099996294826269, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 74, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "remember", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 9, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 189980, | |
"value": "#<User:0x00007fd90226c838>", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "SessionsController", | |
"object_id": 189720, | |
"value": "#<SessionsController:0x00007fd8d22921f8>" | |
} | |
}, | |
{ | |
"id": 75, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "User", | |
"method_id": "remember", | |
"path": "app/models/user.rb", | |
"lineno": 45, | |
"static": false, | |
"receiver": { | |
"class": "User", | |
"object_id": 189980, | |
"value": "#<User:0x00007fd90226c838>" | |
} | |
}, | |
{ | |
"id": 76, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "User", | |
"method_id": "new_remember_token", | |
"path": "app/models/user.rb", | |
"lineno": 30, | |
"static": true, | |
"receiver": { | |
"class": "Class", | |
"object_id": 28300, | |
"value": "User" | |
} | |
}, | |
{ | |
"id": 77, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 76, | |
"elapsed": 0.000009000010322779417, | |
"elapsed_instrumentation": 0.000032999960239976645, | |
"return_value": { | |
"class": "String", | |
"value": "5RxepRh3qhqPUDzBRJVesQ", | |
"object_id": 190000 | |
} | |
}, | |
{ | |
"id": 78, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "User", | |
"method_id": "digest", | |
"path": "app/models/user.rb", | |
"lineno": 23, | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "string", | |
"class": "String", | |
"object_id": 190000, | |
"value": "5RxepRh3qhqPUDzBRJVesQ", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Class", | |
"object_id": 28300, | |
"value": "User" | |
} | |
}, | |
{ | |
"id": 79, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Random", | |
"method_id": "random_bytes", | |
"path": "OpenSSL::Random.random_bytes", | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Integer", | |
"object_id": 33, | |
"value": "16", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 28540, | |
"value": "OpenSSL::Random" | |
} | |
}, | |
{ | |
"id": 80, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 79, | |
"elapsed": 0.000013999990187585354, | |
"elapsed_instrumentation": 0.00003600004129111767, | |
"return_value": { | |
"class": "String", | |
"value": "g_____t\"___k__8(", | |
"object_id": 190020 | |
} | |
}, | |
{ | |
"id": 81, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 78, | |
"elapsed": 0.0015920000150799751, | |
"elapsed_instrumentation": 0.00003200001083314419, | |
"return_value": { | |
"class": "BCrypt::Password", | |
"value": "$2a$04$X8dkhD84bAJMpZzp8tm2I.UALJNeScSeE1hht8dtasQdAWKRuAzVe", | |
"object_id": 190040 | |
} | |
}, | |
{ | |
"id": 82, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190060, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75180, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31d59c0>" | |
} | |
}, | |
{ | |
"id": 83, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 82, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000028999987989664078 | |
}, | |
{ | |
"id": 84, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190060, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75220, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31d6348>" | |
} | |
}, | |
{ | |
"id": 85, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 84, | |
"elapsed": 0.000018000020645558834, | |
"elapsed_instrumentation": 0.00003699993249028921, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e31d5cb8 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 75240, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 86, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190080, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75280, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31c93f0>" | |
} | |
}, | |
{ | |
"id": 87, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 86, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00003300001844763756 | |
}, | |
{ | |
"id": 88, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190100, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[35mSAVEPOINT active_record_1\u001b[0m\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 89, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 88, | |
"elapsed": 0.00002500001573935151, | |
"elapsed_instrumentation": 0.00004299997817724943, | |
"return_value": { | |
"class": "Integer", | |
"value": "64", | |
"object_id": 129 | |
} | |
}, | |
{ | |
"id": 90, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SAVEPOINT active_record_1", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 91, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 90, | |
"elapsed": 0.000162, | |
"elapsed_instrumentation": 0.000019000028260052204 | |
}, | |
{ | |
"id": 92, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190120, | |
"value": " \u001b[1m\u001b[36mUser Update (0.3ms)\u001b[0m \u001b[1m\u001b[33mUPDATE \"users\" SET \"remember_digest\" = ?, \"updated_at\" (...183 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 93, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 92, | |
"elapsed": 0.000011000025551766157, | |
"elapsed_instrumentation": 0.00015899993013590574, | |
"return_value": { | |
"class": "Integer", | |
"value": "283", | |
"object_id": 567 | |
} | |
}, | |
{ | |
"id": 94, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "UPDATE \"users\" SET \"remember_digest\" = ?, \"updated_at\" = ? WHERE \"users\".\"id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 95, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 94, | |
"elapsed": 0.000495, | |
"elapsed_instrumentation": 0.000014999997802078724 | |
}, | |
{ | |
"id": 96, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190080, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75280, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31c93f0>" | |
} | |
}, | |
{ | |
"id": 97, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 96, | |
"elapsed": 0.000044000043999403715, | |
"elapsed_instrumentation": 0.00006900000153109431, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e31c90d0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e31c8d10 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e31c8ab8 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e31c87c0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e31c8568 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 75420, | |
"size": 5 | |
} | |
}, | |
{ | |
"id": 98, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190060, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75220, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31d6348>" | |
} | |
}, | |
{ | |
"id": 99, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 98, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000028999987989664078 | |
}, | |
{ | |
"id": 100, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190060, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 75180, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e31d59c0>" | |
} | |
}, | |
{ | |
"id": 101, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 100, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000025999965146183968 | |
}, | |
{ | |
"id": 102, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190140, | |
"value": " \u001b[1m\u001b[35m (0.0ms)\u001b[0m \u001b[1m\u001b[35mRELEASE SAVEPOINT active_record_1\u001b[0m\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 103, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 102, | |
"elapsed": 0.000011999974958598614, | |
"elapsed_instrumentation": 0.00003300001844763756, | |
"return_value": { | |
"class": "Integer", | |
"value": "72", | |
"object_id": 145 | |
} | |
}, | |
{ | |
"id": 104, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "RELEASE SAVEPOINT active_record_1", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 105, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 104, | |
"elapsed": 0.000105, | |
"elapsed_instrumentation": 0.000013999990187585354 | |
}, | |
{ | |
"id": 106, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 75, | |
"elapsed": 0.003437999985180795, | |
"elapsed_instrumentation": 0.000024999957531690598, | |
"return_value": { | |
"class": "TrueClass", | |
"value": "true", | |
"object_id": 20 | |
} | |
}, | |
{ | |
"id": 107, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Integer", | |
"object_id": 1524292223, | |
"value": "762146111", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 190160, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd90229cf38>" | |
} | |
}, | |
{ | |
"id": 108, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 107, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.000039000005926936865, | |
"return_value": { | |
"class": "String", | |
"value": "762146111", | |
"object_id": 190180 | |
} | |
}, | |
{ | |
"id": 109, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::MessageEncryptor", | |
"method_id": "encrypt_and_sign", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/message_encryptor.rb", | |
"lineno": 150, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "value", | |
"class": "String", | |
"object_id": 190180, | |
"value": "762146111", | |
"kind": "req" | |
}, | |
{ | |
"name": "expires_at", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "expires_in", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "purpose", | |
"class": "String", | |
"object_id": 190200, | |
"value": "cookie.user_id", | |
"kind": "key" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::MessageEncryptor", | |
"object_id": 190220, | |
"value": "#<ActiveSupport::MessageEncryptor:0x00007fd90229d6b8>" | |
} | |
}, | |
{ | |
"id": 110, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "encrypt", | |
"path": "OpenSSL::Cipher#encrypt", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 190240, | |
"value": "[]", | |
"kind": "rest", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>", | |
"labels": [ | |
"crypto.algorithm.id-aes256-GCM" | |
] | |
} | |
}, | |
{ | |
"id": 111, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 110, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000041000021155923605, | |
"return_value": { | |
"class": "OpenSSL::Cipher", | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>", | |
"object_id": 190260 | |
} | |
}, | |
{ | |
"id": 112, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "key=", | |
"path": "OpenSSL::Cipher#key=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 41800, | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 113, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 112, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.0000439999857917428, | |
"return_value": { | |
"class": "String", | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"object_id": 41800 | |
} | |
}, | |
{ | |
"id": 114, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "random_iv", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/openssl/cipher.rb", | |
"lineno": 55, | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 115, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Random", | |
"method_id": "random_bytes", | |
"path": "OpenSSL::Random.random_bytes", | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Integer", | |
"object_id": 25, | |
"value": "12", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 28540, | |
"value": "OpenSSL::Random" | |
} | |
}, | |
{ | |
"id": 116, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 115, | |
"elapsed": 0.000005999987479299307, | |
"elapsed_instrumentation": 0.00003100000321865082, | |
"return_value": { | |
"class": "String", | |
"value": "H__Hr_o__P__", | |
"object_id": 190280 | |
} | |
}, | |
{ | |
"id": 117, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "iv=", | |
"path": "OpenSSL::Cipher#iv=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 190280, | |
"value": "H__Hr_o__P__", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 118, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 117, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000031999952625483274, | |
"return_value": { | |
"class": "String", | |
"value": "H__Hr_o__P__", | |
"object_id": 190280 | |
} | |
}, | |
{ | |
"id": 119, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 114, | |
"elapsed": 0.00008299999171867967, | |
"elapsed_instrumentation": 0.00002500001573935151, | |
"return_value": { | |
"class": "String", | |
"value": "H__Hr_o__P__", | |
"object_id": 190280 | |
} | |
}, | |
{ | |
"id": 120, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "auth_data=", | |
"path": "OpenSSL::Cipher#auth_data=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 42340, | |
"value": "", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 121, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 120, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000024999957531690598, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 42340 | |
} | |
}, | |
{ | |
"id": 122, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Hash", | |
"object_id": 190300, | |
"value": "{_rails=>{message=>NzYyMTQ2MTEx, exp=>, pur=>cookie.user_id}}", | |
"kind": "req", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 190320, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd90228dcb8>" | |
} | |
}, | |
{ | |
"id": 123, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 122, | |
"elapsed": 0.000019000028260052204, | |
"elapsed_instrumentation": 0.000056999968364834785, | |
"return_value": { | |
"class": "String", | |
"value": "{\"_rails\":{\"message\":\"NzYyMTQ2MTEx\",\"exp\":null,\"pur\":\"cookie.user_id\"}}", | |
"object_id": 190340 | |
} | |
}, | |
{ | |
"id": 124, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "update", | |
"path": "OpenSSL::Cipher#update", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 190360, | |
"value": "[{\"_rails\":{\"message\":\"NzYyMTQ2MTEx\",\"exp\":null,\"pur\":\"cookie.user_id\"}}]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 125, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 124, | |
"elapsed": 0.00000400003045797348, | |
"elapsed_instrumentation": 0.00003799994010478258, | |
"return_value": { | |
"class": "String", | |
"value": "__L_\u0006_+_______YA8___X_@tq0M_\u0004__#__J__<__\u000e<_\r___|y[_q__y~__C_\u0019$_\"_/_.O_", | |
"object_id": 190380 | |
} | |
}, | |
{ | |
"id": 126, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "final", | |
"path": "OpenSSL::Cipher#final", | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190260, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022972e0>" | |
} | |
}, | |
{ | |
"id": 127, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 126, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00002099998528137803, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 190400 | |
} | |
}, | |
{ | |
"id": 128, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 109, | |
"elapsed": 0.0004379999591037631, | |
"elapsed_instrumentation": 0.00004600000102072954, | |
"return_value": { | |
"class": "String", | |
"value": "yNFMwQbaK5eOsKWJmNFZQTityIxYyUB0cTBNlgSlqyOpgUqM6DyIkQ48tQ3Y2/h8eVvjcbHXeX7B4kOkfxkknSK5L7QuT94=--SO (...40 more characters)", | |
"object_id": 190420 | |
} | |
}, | |
{ | |
"id": 129, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]=", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 373, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 190440, | |
"value": "{:value=>yNFMwQbaK5eOsKWJmNFZQTityIxYyUB0cTBNlgSlqyOpgUqM6DyIkQ48tQ3Y2/h8eVvjcbHXeX7B4kOkfxkknSK5L7QuT94=--SO (...40 more characters), :expires=>2042-11-27 23:05:25 UTC}", | |
"kind": "req", | |
"size": 2 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 189840, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>" | |
} | |
}, | |
{ | |
"id": 130, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 129, | |
"elapsed": 0.000008000002708286047, | |
"elapsed_instrumentation": 0.000063000014051795, | |
"return_value": { | |
"class": "String", | |
"value": "yNFMwQbaK5eOsKWJmNFZQTityIxYyUB0cTBNlgSlqyOpgUqM6DyIkQ48tQ3Y2/h8eVvjcbHXeX7B4kOkfxkknSK5L7QuT94=--SO (...40 more characters)", | |
"object_id": 190420 | |
} | |
}, | |
{ | |
"id": 131, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]=", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 373, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "Symbol", | |
"object_id": 11639068, | |
"value": ":remember_token", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 190460, | |
"value": "{:value=>5RxepRh3qhqPUDzBRJVesQ, :expires=>2042-11-27 23:05:25 UTC}", | |
"kind": "req", | |
"size": 2 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 189840, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>" | |
} | |
}, | |
{ | |
"id": 132, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 131, | |
"elapsed": 0.000005999987479299307, | |
"elapsed_instrumentation": 0.00004800001624971628, | |
"return_value": { | |
"class": "String", | |
"value": "5RxepRh3qhqPUDzBRJVesQ", | |
"object_id": 190000 | |
} | |
}, | |
{ | |
"id": 133, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 74, | |
"elapsed": 0.004321000014897436, | |
"elapsed_instrumentation": 0.000035999983083456755, | |
"return_value": { | |
"class": "String", | |
"value": "5RxepRh3qhqPUDzBRJVesQ", | |
"object_id": 190000 | |
} | |
}, | |
{ | |
"id": 134, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionController::Instrumentation", | |
"method_id": "redirect_to", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/instrumentation.rb", | |
"lineno": 62, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "args", | |
"class": "Array", | |
"object_id": 190480, | |
"value": "[#<User:0x00007fd90226c838>, {}]", | |
"kind": "rest", | |
"size": 2 | |
} | |
], | |
"receiver": { | |
"class": "SessionsController", | |
"object_id": 189720, | |
"value": "#<SessionsController:0x00007fd8d22921f8>" | |
} | |
}, | |
{ | |
"id": 135, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190500, | |
"value": "Redirected to http://www.example.com/users/762146111\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 136, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 135, | |
"elapsed": 0.000013000040780752897, | |
"elapsed_instrumentation": 0.00004099996294826269, | |
"return_value": { | |
"class": "Integer", | |
"value": "53", | |
"object_id": 107 | |
} | |
}, | |
{ | |
"id": 137, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 134, | |
"elapsed": 0.0002649999805726111, | |
"elapsed_instrumentation": 0.00005900004180148244, | |
"return_value": { | |
"class": "String", | |
"value": "<html><body>You are being <a href=\"http://www.example.com/users/762146111\">redirected</a>.</body></h (...4 more characters)", | |
"object_id": 190520 | |
} | |
}, | |
{ | |
"id": 138, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 55, | |
"elapsed": 0.007133000006433576, | |
"elapsed_instrumentation": 0.00014600006397813559, | |
"return_value": { | |
"class": "String", | |
"value": "<html><body>You are being <a href=\"http://www.example.com/users/762146111\">redirected</a>.</body></h (...4 more characters)", | |
"object_id": 190520 | |
} | |
}, | |
{ | |
"id": 139, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 189780, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 74860, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e22fcfc0>" | |
} | |
}, | |
{ | |
"id": 140, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 139, | |
"elapsed": 0.000008999952115118504, | |
"elapsed_instrumentation": 0.000043000036384910345, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e22fc9d0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 75880, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 141, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190540, | |
"value": "Completed 302 Found in 8ms (ActiveRecord: 0.4ms | Allocations: 4993)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 142, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 141, | |
"elapsed": 0.000010999967344105244, | |
"elapsed_instrumentation": 0.00003200001083314419, | |
"return_value": { | |
"class": "Integer", | |
"value": "69", | |
"object_id": 139 | |
} | |
}, | |
{ | |
"id": 143, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 42, | |
"elapsed": 0.008383999986108392, | |
"elapsed_instrumentation": 0.00008900003740563989, | |
"return_value": { | |
"class": "String", | |
"value": "<html><body>You are being <a href=\"http://www.example.com/users/762146111\">redirected</a>.</body></h (...4 more characters)", | |
"object_id": 190520 | |
} | |
}, | |
{ | |
"id": 144, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 41, | |
"elapsed_instrumentation": 0.00021899997955188155, | |
"http_server_response": { | |
"headers": { | |
"X-Frame-Options": "SAMEORIGIN", | |
"X-XSS-Protection": "1; mode=block", | |
"X-Content-Type-Options": "nosniff", | |
"X-Download-Options": "noopen", | |
"X-Permitted-Cross-Domain-Policies": "none", | |
"Referrer-Policy": "strict-origin-when-cross-origin", | |
"Location": "http://www.example.com/users/762146111" | |
}, | |
"status": 302 | |
} | |
}, | |
{ | |
"id": 145, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Hash", | |
"object_id": 190560, | |
"value": "{session_id=>fda2e954db318bc48712f13d2738acbb, user_id=>762146111}", | |
"kind": "req", | |
"size": 2 | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 190580, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd9022dcb10>" | |
} | |
}, | |
{ | |
"id": 146, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 145, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.00005199998850002885, | |
"return_value": { | |
"class": "String", | |
"value": "{\"session_id\":\"fda2e954db318bc48712f13d2738acbb\",\"user_id\":762146111}", | |
"object_id": 190600 | |
} | |
}, | |
{ | |
"id": 147, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::MessageEncryptor", | |
"method_id": "encrypt_and_sign", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/message_encryptor.rb", | |
"lineno": 150, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "value", | |
"class": "String", | |
"object_id": 190600, | |
"value": "{\"session_id\":\"fda2e954db318bc48712f13d2738acbb\",\"user_id\":762146111}", | |
"kind": "req" | |
}, | |
{ | |
"name": "expires_at", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "expires_in", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "purpose", | |
"class": "String", | |
"object_id": 190620, | |
"value": "cookie._sample_app_session", | |
"kind": "key" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::MessageEncryptor", | |
"object_id": 190640, | |
"value": "#<ActiveSupport::MessageEncryptor:0x00007fd902276630>" | |
} | |
}, | |
{ | |
"id": 148, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "encrypt", | |
"path": "OpenSSL::Cipher#encrypt", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 190660, | |
"value": "[]", | |
"kind": "rest", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>", | |
"labels": [ | |
"crypto.algorithm.id-aes256-GCM" | |
] | |
} | |
}, | |
{ | |
"id": 149, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 148, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000034999975468963385, | |
"return_value": { | |
"class": "OpenSSL::Cipher", | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>", | |
"object_id": 190680 | |
} | |
}, | |
{ | |
"id": 150, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "key=", | |
"path": "OpenSSL::Cipher#key=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 41800, | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 151, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 150, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00003799994010478258, | |
"return_value": { | |
"class": "String", | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"object_id": 41800 | |
} | |
}, | |
{ | |
"id": 152, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "random_iv", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/openssl/cipher.rb", | |
"lineno": 55, | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 153, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Random", | |
"method_id": "random_bytes", | |
"path": "OpenSSL::Random.random_bytes", | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Integer", | |
"object_id": 25, | |
"value": "12", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 28540, | |
"value": "OpenSSL::Random" | |
} | |
}, | |
{ | |
"id": 154, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 153, | |
"elapsed": 0.000004999979864805937, | |
"elapsed_instrumentation": 0.00003000005381181836, | |
"return_value": { | |
"class": "String", | |
"value": "\u000b_\u0012_54W@q4ak", | |
"object_id": 190700 | |
} | |
}, | |
{ | |
"id": 155, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "iv=", | |
"path": "OpenSSL::Cipher#iv=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 190700, | |
"value": "\u000b_\u0012_54W@q4ak", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 156, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 155, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00003300001844763756, | |
"return_value": { | |
"class": "String", | |
"value": "\u000b_\u0012_54W@q4ak", | |
"object_id": 190700 | |
} | |
}, | |
{ | |
"id": 157, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 152, | |
"elapsed": 0.00007899996126070619, | |
"elapsed_instrumentation": 0.00002300000051036477, | |
"return_value": { | |
"class": "String", | |
"value": "\u000b_\u0012_54W@q4ak", | |
"object_id": 190700 | |
} | |
}, | |
{ | |
"id": 158, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "auth_data=", | |
"path": "OpenSSL::Cipher#auth_data=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 42340, | |
"value": "", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 159, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 158, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000025999965146183968, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 42340 | |
} | |
}, | |
{ | |
"id": 160, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Hash", | |
"object_id": 190720, | |
"value": "{_rails=>{message=>eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIjo3NjIxNDYxMTF9, exp=>, pur=>cookie._sample_app_session}}", | |
"kind": "req", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 190740, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd9022bf600>" | |
} | |
}, | |
{ | |
"id": 161, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 160, | |
"elapsed": 0.000017000013031065464, | |
"elapsed_instrumentation": 0.000053999945521354675, | |
"return_value": { | |
"class": "String", | |
"value": "{\"_rails\":{\"message\":\"eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIj (...63 more characters)", | |
"object_id": 190760 | |
} | |
}, | |
{ | |
"id": 162, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "update", | |
"path": "OpenSSL::Cipher#update", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 190780, | |
"value": "[{\"_rails\":{\"message\":\"eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIj (...63 more characters)]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 163, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 162, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00004299997817724943, | |
"return_value": { | |
"class": "String", | |
"value": "_____1__6\u000f____?_zt<_S__\u001dwpC_\u0013@_\u0003_\u001f=_1_j_\u0015CU_u_\u001b___h_\t_________.__lM\u0007_6_____lz3_&_\u001a-ii_5;____-sLZ___ (...63 more characters)", | |
"object_id": 190800 | |
} | |
}, | |
{ | |
"id": 164, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "final", | |
"path": "OpenSSL::Cipher#final", | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 190680, | |
"value": "#<OpenSSL::Cipher:0x00007fd9022d4b18>" | |
} | |
}, | |
{ | |
"id": 165, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 164, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.0000219999928958714, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 190820 | |
} | |
}, | |
{ | |
"id": 166, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 147, | |
"elapsed": 0.00040600000647827983, | |
"elapsed_instrumentation": 0.000041000021155923605, | |
"return_value": { | |
"class": "String", | |
"value": "8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...164 more characters)", | |
"object_id": 190840 | |
} | |
}, | |
{ | |
"id": 167, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]=", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 373, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 41900, | |
"value": "_sample_app_session", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 190860, | |
"value": "{:value=>8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...164 more characters), :same_site=>, :path=>/, :domain=>, :expire_after=>, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :id=>fda2e954db318bc48712f13d2738acbb}", | |
"kind": "req", | |
"size": 10 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 189840, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd902277e40>" | |
} | |
}, | |
{ | |
"id": 168, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 167, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.0000879999715834856, | |
"return_value": { | |
"class": "String", | |
"value": "8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...164 more characters)", | |
"object_id": 190840 | |
} | |
}, | |
{ | |
"id": 169, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190880, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42560, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd92114ea68>" | |
} | |
}, | |
{ | |
"id": 170, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 169, | |
"elapsed": 0.00004499999340623617, | |
"elapsed_instrumentation": 0.0000570000265724957, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd92114e310 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd92114e478 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd92114e658 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 42580, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 171, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190880, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42560, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd92114ea68>" | |
} | |
}, | |
{ | |
"id": 172, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 171, | |
"elapsed": 0.000009000010322779417, | |
"elapsed_instrumentation": 0.000036999990697950125, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd92114e7c0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 42600, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 173, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190920, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33680, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd9023975c8>" | |
} | |
}, | |
{ | |
"id": 174, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 173, | |
"elapsed": 0.0010060000349767506, | |
"elapsed_instrumentation": 0.00008299993351101875, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd902396bf0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902396dd0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902396f38 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902397118 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd902397348 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 33900, | |
"size": 5 | |
} | |
}, | |
{ | |
"id": 175, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 190920, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 33680, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd9023975c8>" | |
} | |
}, | |
{ | |
"id": 176, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 175, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000035999983083456755 | |
}, | |
{ | |
"id": 177, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack", | |
"path": "<internal:pack>", | |
"lineno": 256, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 33940, | |
"value": "NnnnnN", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 190940, | |
"value": "Q_]L____\u001d_\u001eJ_24_" | |
} | |
}, | |
{ | |
"id": 178, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 177, | |
"elapsed": 0.00000300002284348011, | |
"elapsed_instrumentation": 0.00004899996565654874, | |
"return_value": { | |
"class": "Array", | |
"value": "[1374051660, 45765, 56241, 7675, 7754, 2452763849]", | |
"object_id": 190960, | |
"size": 6 | |
} | |
}, | |
{ | |
"id": 179, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 190980, | |
"value": "Started GET \"/users/762146111/followers\" for 127.0.0.1 at 2022-11-27 18:05:25 -0500\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 180, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 179, | |
"elapsed": 0.000019000028260052204, | |
"elapsed_instrumentation": 0.00003899994771927595, | |
"return_value": { | |
"class": "Integer", | |
"value": "84", | |
"object_id": 169 | |
} | |
}, | |
{ | |
"id": 181, | |
"event": "call", | |
"thread_id": 4280, | |
"http_server_request": { | |
"request_method": "GET", | |
"path_info": "/users/762146111/followers", | |
"normalized_path_info": "/users/{id}/followers", | |
"headers": { | |
"Host": "www.example.com", | |
"Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", | |
"Cookie": "_sample_app_session=8r%2BbvfQxvso2D5nZlKM%2Fp3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8%2BmoLCL3vYu4NhsTQd%2FoTacr8yA%2B2x6M%2B0mvRotaWnaNTvA0MHPLXNMWtaggxVGFTAhboOtCaugyNEKd7AB08DkM3WA7PIIi9lZlIEXsB5YClJkYLYxltECoqNbt3DFBornRmnJyMIV0Q9SEQ%3D%3D--C70SkjU0V0BxNGFr--f5%2BCB9tKkC6SIhI7LUVKLw%3D%3D; remember_token=5RxepRh3qhqPUDzBRJVesQ; user_id=yNFMwQbaK5eOsKWJmNFZQTityIxYyUB0cTBNlgSlqyOpgUqM6DyIkQ48tQ3Y2%2Fh8eVvjcbHXeX7B4kOkfxkknSK5L7QuT94%3D--SOHrSHK7b4a8UNGp--XL7pjtOnw8YMnZ9hEyepUw%3D%3D", | |
"Content-Length": "0" | |
} | |
}, | |
"message": [ | |
{ | |
"name": "controller", | |
"class": "String", | |
"value": "users", | |
"object_id": 69900 | |
}, | |
{ | |
"name": "action", | |
"class": "String", | |
"value": "followers", | |
"object_id": 73180 | |
}, | |
{ | |
"name": "id", | |
"class": "String", | |
"value": "762146111", | |
"object_id": 193520 | |
} | |
] | |
}, | |
{ | |
"id": 182, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionController::Instrumentation", | |
"method_id": "process_action", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/instrumentation.rb", | |
"lineno": 19, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "args", | |
"class": "Array", | |
"object_id": 191020, | |
"value": "[followers]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 183, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191060, | |
"value": "Processing by UsersController#followers as HTML\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 184, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 183, | |
"elapsed": 0.000029999995604157448, | |
"elapsed_instrumentation": 0.00005199998850002885, | |
"return_value": { | |
"class": "Integer", | |
"value": "48", | |
"object_id": 97 | |
} | |
}, | |
{ | |
"id": 185, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191080, | |
"value": " Parameters: {\"id\"=>\"762146111\"}\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 186, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 185, | |
"elapsed": 0.000012000033166259527, | |
"elapsed_instrumentation": 0.00003700004890561104, | |
"return_value": { | |
"class": "Integer", | |
"value": "34", | |
"object_id": 69 | |
} | |
}, | |
{ | |
"id": 187, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 191100, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 44620, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8d19b13e0>" | |
} | |
}, | |
{ | |
"id": 188, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 8406428, | |
"value": ":_turbolinks_location", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 189, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "update", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 333, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "other_hash", | |
"class": "Hash", | |
"object_id": 191140, | |
"value": "{_sample_app_session=>8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...164 more characters), remember_token=>5RxepRh3qhqPUDzBRJVesQ, user_id=>yNFMwQbaK5eOsKWJmNFZQTityIxYyUB0cTBNlgSlqyOpgUqM6DyIkQ48tQ3Y2/h8eVvjcbHXeX7B4kOkfxkknSK5L7QuT94=--SO (...40 more characters)}", | |
"kind": "req", | |
"size": 3 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 191160, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd90232e578>" | |
} | |
}, | |
{ | |
"id": 190, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 189, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.00006700004450976849, | |
"return_value": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd90232e578>", | |
"object_id": 191160 | |
} | |
}, | |
{ | |
"id": 191, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 317, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 41900, | |
"value": "_sample_app_session", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 191160, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd90232e578>" | |
} | |
}, | |
{ | |
"id": 192, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 191, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00003700004890561104, | |
"return_value": { | |
"class": "String", | |
"value": "8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...164 more characters)", | |
"object_id": 191180 | |
} | |
}, | |
{ | |
"id": 193, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack1", | |
"path": "<internal:pack>", | |
"lineno": 280, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 76560, | |
"value": "m0", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 191200, | |
"value": "8r+bvfQxvso2D5nZlKM/p3p0PMNTl9Ydd3BDnBNA1QPnHz3bMcVqjRVDVdB13BvAjK9ongmfy8+moLCL3vYu4NhsTQd/oTacr8yA (...120 more characters)" | |
} | |
}, | |
{ | |
"id": 194, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 193, | |
"elapsed": 0.0000029999646358191967, | |
"elapsed_instrumentation": 0.00004600000102072954, | |
"return_value": { | |
"class": "String", | |
"value": "_____1__6\u000f____?_zt<_S__\u001dwpC_\u0013@_\u0003_\u001f=_1_j_\u0015CU_u_\u001b___h_\t_________.__lM\u0007_6_____lz3_&_\u001a-ii_5;____-sLZ___ (...63 more characters)", | |
"object_id": 191220 | |
} | |
}, | |
{ | |
"id": 195, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack1", | |
"path": "<internal:pack>", | |
"lineno": 280, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 76560, | |
"value": "m0", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 191240, | |
"value": "C70SkjU0V0BxNGFr" | |
} | |
}, | |
{ | |
"id": 196, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 195, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000029999937396496534, | |
"return_value": { | |
"class": "String", | |
"value": "\u000b_\u0012_54W@q4ak", | |
"object_id": 191260 | |
} | |
}, | |
{ | |
"id": 197, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack1", | |
"path": "<internal:pack>", | |
"lineno": 280, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 76560, | |
"value": "m0", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 191280, | |
"value": "f5+CB9tKkC6SIhI7LUVKLw==" | |
} | |
}, | |
{ | |
"id": 198, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 197, | |
"elapsed": 9.999494068324566e-7, | |
"elapsed_instrumentation": 0.00002800003858283162, | |
"return_value": { | |
"class": "String", | |
"value": "__\u0007_J_._\"\u0012;-EJ/", | |
"object_id": 191300 | |
} | |
}, | |
{ | |
"id": 199, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "decrypt", | |
"path": "OpenSSL::Cipher#decrypt", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 191320, | |
"value": "[]", | |
"kind": "rest", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>", | |
"labels": [ | |
"crypto.algorithm.id-aes256-GCM" | |
] | |
} | |
}, | |
{ | |
"id": 200, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 199, | |
"elapsed": 0.0000019999570213258266, | |
"elapsed_instrumentation": 0.000045000051613897085, | |
"return_value": { | |
"class": "OpenSSL::Cipher", | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>", | |
"object_id": 191340 | |
} | |
}, | |
{ | |
"id": 201, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "key=", | |
"path": "OpenSSL::Cipher#key=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 41800, | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 202, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 201, | |
"elapsed": 0.0000029999646358191967, | |
"elapsed_instrumentation": 0.00004000007174909115, | |
"return_value": { | |
"class": "String", | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"object_id": 41800 | |
} | |
}, | |
{ | |
"id": 203, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "iv=", | |
"path": "OpenSSL::Cipher#iv=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 191260, | |
"value": "\u000b_\u0012_54W@q4ak", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 204, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 203, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000032999960239976645, | |
"return_value": { | |
"class": "String", | |
"value": "\u000b_\u0012_54W@q4ak", | |
"object_id": 191260 | |
} | |
}, | |
{ | |
"id": 205, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "auth_tag=", | |
"path": "OpenSSL::Cipher#auth_tag=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 191300, | |
"value": "__\u0007_J_._\"\u0012;-EJ/", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 206, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 205, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000030999945010989904, | |
"return_value": { | |
"class": "String", | |
"value": "__\u0007_J_._\"\u0012;-EJ/", | |
"object_id": 191300 | |
} | |
}, | |
{ | |
"id": 207, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "auth_data=", | |
"path": "OpenSSL::Cipher#auth_data=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 42340, | |
"value": "", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 208, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 207, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000026999972760677338, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 42340 | |
} | |
}, | |
{ | |
"id": 209, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "update", | |
"path": "OpenSSL::Cipher#update", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 191360, | |
"value": "[_____1__6\u000f____?_zt<_S__\u001dwpC_\u0013@_\u0003_\u001f=_1_j_\u0015CU_u_\u001b___h_\t_________.__lM\u0007_6_____lz3_&_\u001a-ii_5;____-sLZ___ (...63 more characters)]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 210, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 209, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.000043000036384910345, | |
"return_value": { | |
"class": "String", | |
"value": "{\"_rails\":{\"message\":\"eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIj (...63 more characters)", | |
"object_id": 191380 | |
} | |
}, | |
{ | |
"id": 211, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "final", | |
"path": "OpenSSL::Cipher#final", | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 191340, | |
"value": "#<OpenSSL::Cipher:0x00007fd902327188>" | |
} | |
}, | |
{ | |
"id": 212, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 211, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00002400000812485814, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 191400 | |
} | |
}, | |
{ | |
"id": 213, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Parser", | |
"method_id": "parse", | |
"path": "JSON::Ext::Parser#parse", | |
"static": false, | |
"receiver": { | |
"class": "JSON::Ext::Parser", | |
"object_id": 191420, | |
"value": "#<JSON::Ext::Parser:0x00007fd902315d48>" | |
} | |
}, | |
{ | |
"id": 214, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 213, | |
"elapsed": 0.000005999987479299307, | |
"elapsed_instrumentation": 0.00004900002386420965, | |
"return_value": { | |
"class": "Hash", | |
"value": "{_rails=>{message=>eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIjo3NjIxNDYxMTF9, exp=>, pur=>cookie._sample_app_session}}", | |
"object_id": 191440, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 215, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "String", | |
"method_id": "unpack1", | |
"path": "<internal:pack>", | |
"lineno": 280, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "fmt", | |
"class": "String", | |
"object_id": 76560, | |
"value": "m0", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "String", | |
"object_id": 191460, | |
"value": "eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIjo3NjIxNDYxMTF9" | |
} | |
}, | |
{ | |
"id": 216, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 215, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00013800000306218863, | |
"return_value": { | |
"class": "String", | |
"value": "{\"session_id\":\"fda2e954db318bc48712f13d2738acbb\",\"user_id\":762146111}", | |
"object_id": 191480 | |
} | |
}, | |
{ | |
"id": 217, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Parser", | |
"method_id": "parse", | |
"path": "JSON::Ext::Parser#parse", | |
"static": false, | |
"receiver": { | |
"class": "JSON::Ext::Parser", | |
"object_id": 191500, | |
"value": "#<JSON::Ext::Parser:0x00007fd8e32f77b8>" | |
} | |
}, | |
{ | |
"id": 218, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 217, | |
"elapsed": 0.000004999979864805937, | |
"elapsed_instrumentation": 0.000037999998312443495, | |
"return_value": { | |
"class": "Hash", | |
"value": "{session_id=>fda2e954db318bc48712f13d2738acbb, user_id=>762146111}", | |
"object_id": 191520, | |
"size": 2 | |
} | |
}, | |
{ | |
"id": 219, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 188, | |
"elapsed": 0.000948999950196594, | |
"elapsed_instrumentation": 0.00003400002606213093 | |
}, | |
{ | |
"id": 220, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "LoggedInHelper", | |
"method_id": "logged_in_user", | |
"path": "app/helpers/logged_in_helper.rb", | |
"lineno": 10, | |
"static": false, | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 221, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "logged_in?", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 35, | |
"static": false, | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 222, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 223, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 224, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 223, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000026999972760677338, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 225, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191540, | |
"value": " \u001b[1m\u001b[36mUser Load (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMI (...43 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 226, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 225, | |
"elapsed": 0.000013999990187585354, | |
"elapsed_instrumentation": 0.000041000021155923605, | |
"return_value": { | |
"class": "Integer", | |
"value": "143", | |
"object_id": 287 | |
} | |
}, | |
{ | |
"id": 227, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 228, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 227, | |
"elapsed": 0.000183, | |
"elapsed_instrumentation": 0.00002700003096833825 | |
}, | |
{ | |
"id": 229, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 222, | |
"elapsed": 0.00044999999227002263, | |
"elapsed_instrumentation": 0.000035999983083456755, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 230, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 221, | |
"elapsed": 0.0004939999780617654, | |
"elapsed_instrumentation": 0.00002500001573935151, | |
"return_value": { | |
"class": "TrueClass", | |
"value": "true", | |
"object_id": 20 | |
} | |
}, | |
{ | |
"id": 231, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 220, | |
"elapsed": 0.000526999996509403, | |
"elapsed_instrumentation": 0.000027999980375170708 | |
}, | |
{ | |
"id": 232, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 187, | |
"elapsed": 0.0016869999817572534, | |
"elapsed_instrumentation": 0.00007400003960356116, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8d19b0580 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8d19b0940 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8d19b0aa8 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8d19b0c10 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8d19b0e18 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8d19b1020 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 44700, | |
"size": 6 | |
} | |
}, | |
{ | |
"id": 233, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersController", | |
"method_id": "followers", | |
"path": "app/controllers/users_controller.rb", | |
"lineno": 66, | |
"static": false, | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 234, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191580, | |
"value": " \u001b[1m\u001b[36mUser Load (0.0ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMI (...43 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 235, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 234, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.000039000005926936865, | |
"return_value": { | |
"class": "Integer", | |
"value": "143", | |
"object_id": 287 | |
} | |
}, | |
{ | |
"id": 236, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 237, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 236, | |
"elapsed": 0.000125, | |
"elapsed_instrumentation": 0.000013999990187585354 | |
}, | |
{ | |
"id": 238, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersController", | |
"method_id": "page_number", | |
"path": "app/controllers/users_controller.rb", | |
"lineno": 75, | |
"static": false, | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 239, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 238, | |
"elapsed": 0.000008000002708286047, | |
"elapsed_instrumentation": 0.00003100000321865082, | |
"return_value": { | |
"class": "Integer", | |
"value": "1", | |
"object_id": 3 | |
} | |
}, | |
{ | |
"id": 240, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionController::Renderers", | |
"method_id": "render_to_body", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/renderers.rb", | |
"lineno": 141, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 191600, | |
"value": "{:action=>show_follow, :prefixes=>[users, application], :template=>show_follow, :layout=>#<Proc:0x00007fd8e32de970 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6}", | |
"kind": "req", | |
"size": 4 | |
} | |
], | |
"receiver": { | |
"class": "UsersController", | |
"object_id": 191040, | |
"value": "#<UsersController:0x00007fd8e32cf588>" | |
} | |
}, | |
{ | |
"id": 241, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_users_show_follow_html_erb", | |
"method_id": "render", | |
"path": "app/views/users/show_follow.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::TemplateRenderer", | |
"object_id": 193540, | |
"value": "#<ActionView::TemplateRenderer:0x00007fd8e32dc9e0>" | |
} | |
}, | |
{ | |
"id": 242, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191620, | |
"value": "show_follow", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 45040, | |
"value": "users", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "FalseClass", | |
"object_id": 0, | |
"value": "false", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 191660, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 243, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 242, | |
"elapsed": 0.00023799994960427284, | |
"elapsed_instrumentation": 0.00021100003505125642, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd8e32d0ca8>]", | |
"object_id": 191680, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 244, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191700, | |
"value": "users", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 191720, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "FalseClass", | |
"object_id": 0, | |
"value": "false", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191740, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 191760, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 245, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 244, | |
"elapsed": 0.00000500003807246685, | |
"elapsed_instrumentation": 0.00010100007057189941 | |
}, | |
{ | |
"id": 246, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191700, | |
"value": "users", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 191720, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "FalseClass", | |
"object_id": 0, | |
"value": "false", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191740, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 191760, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45340, | |
"value": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actiontext-6.0.4.1/app/views" | |
} | |
}, | |
{ | |
"id": 247, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 246, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.00008899997919797897 | |
}, | |
{ | |
"id": 248, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191700, | |
"value": "users", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 191720, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "FalseClass", | |
"object_id": 0, | |
"value": "false", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191740, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 191760, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45360, | |
"value": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionmailbox-6.0.4.1/app/views" | |
} | |
}, | |
{ | |
"id": 249, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 248, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.0000850000069476664 | |
}, | |
{ | |
"id": 250, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191780, | |
"value": "application", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 191800, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "FalseClass", | |
"object_id": 0, | |
"value": "false", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191820, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 191840, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 251, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 250, | |
"elapsed": 0.00000300002284348011, | |
"elapsed_instrumentation": 0.00016199995297938585, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd8e267e338>]", | |
"object_id": 45460, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 252, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191860, | |
"value": " Rendering users/show_follow.html.erb within layouts/application\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 253, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 252, | |
"elapsed": 0.000013999990187585354, | |
"elapsed_instrumentation": 0.000039000005926936865, | |
"return_value": { | |
"class": "Integer", | |
"value": "66", | |
"object_id": 133 | |
} | |
}, | |
{ | |
"id": 254, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersHelper", | |
"method_id": "gravatar_for", | |
"path": "app/helpers/users_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 191900, | |
"value": "#<User:0x00007fd8e32e4cd0>", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "opt" | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 255, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 254, | |
"elapsed": 0.00005000003147870302, | |
"elapsed_instrumentation": 0.00006499997107312083, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "<img alt=\"Michael Example\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/03ea78c0884c9ac0 (...25 more characters)", | |
"object_id": 191940 | |
} | |
}, | |
{ | |
"id": 256, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 191960, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT COUNT(*) FROM \"microposts\" WHERE \"microposts\".\"user_id\" = ? (...31 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 257, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 256, | |
"elapsed": 0.000014999997802078724, | |
"elapsed_instrumentation": 0.000046000059228390455, | |
"return_value": { | |
"class": "Integer", | |
"value": "131", | |
"object_id": 263 | |
} | |
}, | |
{ | |
"id": 258, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT COUNT(*) FROM \"microposts\" WHERE \"microposts\".\"user_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 259, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 258, | |
"elapsed": 0.000205, | |
"elapsed_instrumentation": 0.00010900001507252455 | |
}, | |
{ | |
"id": 260, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_shared__stats_html_erb", | |
"method_id": "render", | |
"path": "app/views/shared/_stats.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::PartialRenderer", | |
"object_id": 193560, | |
"value": "#<ActionView::PartialRenderer:0x00007fd8e32fc858>" | |
} | |
}, | |
{ | |
"id": 261, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 191980, | |
"value": "stats", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 192000, | |
"value": "shared", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "TrueClass", | |
"object_id": 20, | |
"value": "true", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 192020, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 262, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 261, | |
"elapsed": 0.000009000010322779417, | |
"elapsed_instrumentation": 0.00028000003658235073, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd8e2697248>]", | |
"object_id": 45640, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 263, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192040, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\" (...112 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 264, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 263, | |
"elapsed": 0.000036999990697950125, | |
"elapsed_instrumentation": 0.000063000014051795, | |
"return_value": { | |
"class": "Integer", | |
"value": "212", | |
"object_id": 425 | |
} | |
}, | |
{ | |
"id": 265, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"followed_id\" WHERE \"relationships\".\"follower_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 266, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 265, | |
"elapsed": 0.000296, | |
"elapsed_instrumentation": 0.00001999997766688466 | |
}, | |
{ | |
"id": 267, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192060, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\" (...112 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 268, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 267, | |
"elapsed": 0.000014999997802078724, | |
"elapsed_instrumentation": 0.00004800001624971628, | |
"return_value": { | |
"class": "Integer", | |
"value": "212", | |
"object_id": 425 | |
} | |
}, | |
{ | |
"id": 269, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 270, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 269, | |
"elapsed": 0.00018, | |
"elapsed_instrumentation": 0.000014999997802078724 | |
}, | |
{ | |
"id": 271, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192080, | |
"value": " Rendered shared/_stats.html.erb (Duration: 1.5ms | Allocations: 982)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 272, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 271, | |
"elapsed": 0.000010999967344105244, | |
"elapsed_instrumentation": 0.00003700004890561104, | |
"return_value": { | |
"class": "Integer", | |
"value": "71", | |
"object_id": 143 | |
} | |
}, | |
{ | |
"id": 273, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 260, | |
"elapsed": 0.0019400000455789268, | |
"elapsed_instrumentation": 0.000029999995604157448 | |
}, | |
{ | |
"id": 274, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192100, | |
"value": " \u001b[1m\u001b[35mCACHE (0.0ms)\u001b[0m \u001b[1m\u001b[34mSELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \" (...118 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 275, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 274, | |
"elapsed": 0.000011999974958598614, | |
"elapsed_instrumentation": 0.000043000036384910345, | |
"return_value": { | |
"class": "Integer", | |
"value": "218", | |
"object_id": 437 | |
} | |
}, | |
{ | |
"id": 276, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 277, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 276, | |
"elapsed": 0.000104, | |
"elapsed_instrumentation": 0.000013999990187585354 | |
}, | |
{ | |
"id": 278, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveRecord::Relation", | |
"method_id": "records", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activerecord-6.0.4.1/lib/active_record/relation.rb", | |
"lineno": 249, | |
"static": false, | |
"receiver": { | |
"class": "ActiveRecord::AssociationRelation", | |
"object_id": 192120, | |
"value": "#<User::ActiveRecord_AssociationRelation:0x00007fd8e32df0a0>" | |
} | |
}, | |
{ | |
"id": 279, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192140, | |
"value": " \u001b[1m\u001b[36mUser Load (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" (...169 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 280, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 279, | |
"elapsed": 0.000012000033166259527, | |
"elapsed_instrumentation": 0.000043000036384910345, | |
"return_value": { | |
"class": "Integer", | |
"value": "269", | |
"object_id": 539 | |
} | |
}, | |
{ | |
"id": 281, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ? LIMIT ? OFFSET ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 282, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 281, | |
"elapsed": 0.00023, | |
"elapsed_instrumentation": 0.000016000005416572094 | |
}, | |
{ | |
"id": 283, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 278, | |
"elapsed": 0.00043700000969693065, | |
"elapsed_instrumentation": 0.000060999998822808266, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<User:0x00007fd8e258e388>, #<User:0x00007fd8e258e298>]", | |
"object_id": 192160, | |
"size": 2 | |
} | |
}, | |
{ | |
"id": 284, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersHelper", | |
"method_id": "gravatar_for", | |
"path": "app/helpers/users_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192180, | |
"value": "#<User:0x00007fd8e258e388>", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 192200, | |
"value": "{:size=>30}", | |
"kind": "opt", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 285, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 284, | |
"elapsed": 0.00004799995804205537, | |
"elapsed_instrumentation": 0.00006799999391660094, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "<img alt=\"Lana Kane\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/de9a58df9617af487e8b28 (...19 more characters)", | |
"object_id": 192220 | |
} | |
}, | |
{ | |
"id": 286, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersHelper", | |
"method_id": "gravatar_for", | |
"path": "app/helpers/users_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192240, | |
"value": "#<User:0x00007fd8e258e298>", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 192260, | |
"value": "{:size=>30}", | |
"kind": "opt", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 287, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 286, | |
"elapsed": 0.00002500001573935151, | |
"elapsed_instrumentation": 0.000058999983593821526, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "<img alt=\"Sterling Archer\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/d08d4b6a8f375370 (...25 more characters)", | |
"object_id": 192280 | |
} | |
}, | |
{ | |
"id": 288, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_users__user_html_erb", | |
"method_id": "render", | |
"path": "app/views/users/_user.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::PartialRenderer", | |
"object_id": 193580, | |
"value": "#<ActionView::PartialRenderer:0x00007fd921a69350>" | |
} | |
}, | |
{ | |
"id": 289, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveRecord::Relation", | |
"method_id": "records", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activerecord-6.0.4.1/lib/active_record/relation.rb", | |
"lineno": 249, | |
"static": false, | |
"receiver": { | |
"class": "ActiveRecord::AssociationRelation", | |
"object_id": 192120, | |
"value": "#<User::ActiveRecord_AssociationRelation:0x00007fd8e32df0a0>" | |
} | |
}, | |
{ | |
"id": 290, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 289, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00004799995804205537, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<User:0x00007fd8e258e388>, #<User:0x00007fd8e258e298>]", | |
"object_id": 192160, | |
"size": 2 | |
} | |
}, | |
{ | |
"id": 291, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 192300, | |
"value": "user", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 192320, | |
"value": "users", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "TrueClass", | |
"object_id": 20, | |
"value": "true", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 192340, | |
"value": "[:user, :user_counter, :user_iteration]", | |
"kind": "opt", | |
"size": 3 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 292, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 291, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.00020700000459328294, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd9011f1120>]", | |
"object_id": 178940, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 293, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersHelper", | |
"method_id": "gravatar_for", | |
"path": "app/helpers/users_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192180, | |
"value": "#<User:0x00007fd8e258e388>", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 192360, | |
"value": "{:size=>50}", | |
"kind": "opt", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 294, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 293, | |
"elapsed": 0.000024999957531690598, | |
"elapsed_instrumentation": 0.00006000004941597581, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "<img alt=\"Lana Kane\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/de9a58df9617af487e8b28 (...19 more characters)", | |
"object_id": 192380 | |
} | |
}, | |
{ | |
"id": 295, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 296, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 297, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 296, | |
"elapsed": 0.00000300002284348011, | |
"elapsed_instrumentation": 0.000033999967854470015, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 298, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 295, | |
"elapsed": 0.00004900002386420965, | |
"elapsed_instrumentation": 0.000035999983083456755, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 299, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user?", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 29, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192180, | |
"value": "#<User:0x00007fd8e258e388>", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 300, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 301, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 302, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 301, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.000025999965146183968, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 303, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 300, | |
"elapsed": 0.0000350000336766243, | |
"elapsed_instrumentation": 0.000029999995604157448, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 304, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 299, | |
"elapsed": 0.00007800001185387373, | |
"elapsed_instrumentation": 0.00003300001844763756 | |
}, | |
{ | |
"id": 305, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "UsersHelper", | |
"method_id": "gravatar_for", | |
"path": "app/helpers/users_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192240, | |
"value": "#<User:0x00007fd8e258e298>", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 192400, | |
"value": "{:size=>50}", | |
"kind": "opt", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 306, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 305, | |
"elapsed": 0.000021000043489038944, | |
"elapsed_instrumentation": 0.00005500001134350896, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "<img alt=\"Sterling Archer\" class=\"gravatar\" src=\"https://secure.gravatar.com/avatar/d08d4b6a8f375370 (...25 more characters)", | |
"object_id": 192420 | |
} | |
}, | |
{ | |
"id": 307, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 308, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 309, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 308, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00002600002335384488, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 310, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 307, | |
"elapsed": 0.000032999960239976645, | |
"elapsed_instrumentation": 0.0000320000690408051, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 311, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user?", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 29, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "user", | |
"class": "User", | |
"object_id": 192240, | |
"value": "#<User:0x00007fd8e258e298>", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 312, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 313, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 314, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 313, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000024999957531690598, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 315, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 312, | |
"elapsed": 0.00003200001083314419, | |
"elapsed_instrumentation": 0.000027999980375170708, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 316, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 311, | |
"elapsed": 0.00006799999391660094, | |
"elapsed_instrumentation": 0.00003100000321865082 | |
}, | |
{ | |
"id": 317, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192440, | |
"value": " Rendered collection of users/_user.html.erb [2 times] (Duration: 0.8ms | Allocations: 1313)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 318, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 317, | |
"elapsed": 0.000013000040780752897, | |
"elapsed_instrumentation": 0.000031999952625483274, | |
"return_value": { | |
"class": "Integer", | |
"value": "94", | |
"object_id": 189 | |
} | |
}, | |
{ | |
"id": 319, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 288, | |
"elapsed": 0.0011860000086016953, | |
"elapsed_instrumentation": 0.000017000071238726377 | |
}, | |
{ | |
"id": 320, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192460, | |
"value": " Rendered users/show_follow.html.erb within layouts/application (Duration: 5.8ms | Allocations: 547 (...3 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 321, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 320, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.000033999967854470015, | |
"return_value": { | |
"class": "Integer", | |
"value": "103", | |
"object_id": 207 | |
} | |
}, | |
{ | |
"id": 322, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ApplicationHelper", | |
"method_id": "full_title", | |
"path": "app/helpers/application_helper.rb", | |
"lineno": 4, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "page_title", | |
"class": "ActiveSupport::SafeBuffer", | |
"object_id": 192480, | |
"value": "Followers", | |
"kind": "opt" | |
} | |
], | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 323, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 322, | |
"elapsed": 0.000008000002708286047, | |
"elapsed_instrumentation": 0.00003899994771927595, | |
"return_value": { | |
"class": "ActiveSupport::SafeBuffer", | |
"value": "Followers | Ruby on Rails Tutorial Sample App", | |
"object_id": 192500 | |
} | |
}, | |
{ | |
"id": 324, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Sprockets::EncodingUtils", | |
"method_id": "unmarshaled_deflated", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/sprockets-4.0.2/lib/sprockets/encoding_utils.rb", | |
"lineno": 39, | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "str", | |
"class": "String", | |
"object_id": 192520, | |
"value": "x______D\u0014___Z\u0011\u0015o_[QQ_L_]\u000e_\u0005|__\u001c*__\u0003___t2__I____._j_\u001f\u0004O\u0014\u0014________L2_K____\u0007__:}_______q__3_____T_Mm_&Q (...1555 more characters)", | |
"kind": "req" | |
}, | |
{ | |
"name": "window_bits", | |
"class": "Integer", | |
"object_id": 31, | |
"value": "15", | |
"kind": "opt" | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 5920, | |
"value": "Sprockets::EncodingUtils" | |
} | |
}, | |
{ | |
"id": 325, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Marshal", | |
"method_id": "load", | |
"path": "Marshal.load", | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "source", | |
"class": "String", | |
"object_id": 192540, | |
"value": "\u0004\b[\bo:\bSet\u0006:\n@hash}}I\"\u0018environment-version\u0006:\u0006ETTI\"\u0016environment-paths\u0006;\u0007TTI\"\u000erails-env\u0006;\u0007TTI\"0process (...16199 more characters)", | |
"kind": "req" | |
}, | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 192560, | |
"value": "[]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 50120, | |
"value": "Marshal" | |
} | |
}, | |
{ | |
"id": 326, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 325, | |
"elapsed": 0.00019699998665601015, | |
"elapsed_instrumentation": 0.0008410000009462237, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type, #<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type, #<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type]", | |
"object_id": 192640, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 327, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 324, | |
"elapsed": 0.0011030000168830156, | |
"elapsed_instrumentation": 0.0008439999655820429, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type, #<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type, #<Set: {\"environment-version\", \"environment-paths\", \"rails-env\", \"processors:type=text/css&file_type]", | |
"object_id": 192640, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 328, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192660, | |
"value": "[Webpacker] Everything's up-to-date. Nothing to do\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 329, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 328, | |
"elapsed": 0.00002700003096833825, | |
"elapsed_instrumentation": 0.00009600003249943256, | |
"return_value": { | |
"class": "Integer", | |
"value": "51", | |
"object_id": 103 | |
} | |
}, | |
{ | |
"id": 330, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Parser", | |
"method_id": "parse", | |
"path": "JSON::Ext::Parser#parse", | |
"static": false, | |
"receiver": { | |
"class": "JSON::Ext::Parser", | |
"object_id": 192680, | |
"value": "#<JSON::Ext::Parser:0x00007fd8e331e6d8>" | |
} | |
}, | |
{ | |
"id": 331, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 330, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.00008999998681247234, | |
"return_value": { | |
"class": "Hash", | |
"value": "{application.js=>/packs-test/js/application-e67176e90b41fff7a658.js, application.js.map=>/packs-test/js/application-e67176e90b41fff7a658.js.map, entrypoints=>{application=>{js=>[/packs-test/js/application-e67176e90b41fff7a658.js], js.map=>[/packs-test/js/application-e67176e90b41fff7a658.js.map]}}}", | |
"object_id": 192700, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 332, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_layouts__shim_html_erb", | |
"method_id": "render", | |
"path": "app/views/layouts/_shim.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::PartialRenderer", | |
"object_id": 193600, | |
"value": "#<ActionView::PartialRenderer:0x00007fd8e2595890>" | |
} | |
}, | |
{ | |
"id": 333, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 192720, | |
"value": "shim", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 192740, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "TrueClass", | |
"object_id": 20, | |
"value": "true", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 192760, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 334, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 333, | |
"elapsed": 0.000009999959729611874, | |
"elapsed_instrumentation": 0.00022900005569681525, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd92119a558>]", | |
"object_id": 69420, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 335, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192780, | |
"value": " Rendered layouts/_shim.html.erb (Duration: 0.0ms | Allocations: 12)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 336, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 335, | |
"elapsed": 0.00001599994720891118, | |
"elapsed_instrumentation": 0.00003900006413459778, | |
"return_value": { | |
"class": "Integer", | |
"value": "70", | |
"object_id": 141 | |
} | |
}, | |
{ | |
"id": 337, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 332, | |
"elapsed": 0.0004220000118948519, | |
"elapsed_instrumentation": 0.00002099998528137803 | |
}, | |
{ | |
"id": 338, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_layouts__header_html_erb", | |
"method_id": "render", | |
"path": "app/views/layouts/_header.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::PartialRenderer", | |
"object_id": 193620, | |
"value": "#<ActionView::PartialRenderer:0x00007fd8d1933328>" | |
} | |
}, | |
{ | |
"id": 339, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 192800, | |
"value": "header", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 192820, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "TrueClass", | |
"object_id": 20, | |
"value": "true", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 192840, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 340, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 339, | |
"elapsed": 0.000005999987479299307, | |
"elapsed_instrumentation": 0.00016499997582286596, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd8d19ba530>]", | |
"object_id": 69540, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 341, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "logged_in?", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 35, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 342, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 343, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 344, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 343, | |
"elapsed": 0.0000029999646358191967, | |
"elapsed_instrumentation": 0.00003700004890561104, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 345, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 342, | |
"elapsed": 0.00005000003147870302, | |
"elapsed_instrumentation": 0.00004499999340623617, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 346, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 341, | |
"elapsed": 0.00010299996938556433, | |
"elapsed_instrumentation": 0.00003400002606213093, | |
"return_value": { | |
"class": "TrueClass", | |
"value": "true", | |
"object_id": 20 | |
} | |
}, | |
{ | |
"id": 347, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 348, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 349, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 348, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000025999965146183968, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 350, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 347, | |
"elapsed": 0.000034999975468963385, | |
"elapsed_instrumentation": 0.00003200001083314419, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 351, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "SessionsHelper", | |
"method_id": "current_user", | |
"path": "app/helpers/sessions_helper.rb", | |
"lineno": 16, | |
"static": false, | |
"receiver": { | |
"class": "ActionView::Base", | |
"object_id": 191920, | |
"value": "#<#<Class:0x00007fd8e2656e28>:0x00007fd8e32dcd50>" | |
} | |
}, | |
{ | |
"id": 352, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "Symbol", | |
"object_id": 7869468, | |
"value": ":user_id", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 353, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 352, | |
"elapsed": 0.0000019999570213258266, | |
"elapsed_instrumentation": 0.00002500001573935151, | |
"return_value": { | |
"class": "Integer", | |
"value": "762146111", | |
"object_id": 1524292223 | |
} | |
}, | |
{ | |
"id": 354, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 351, | |
"elapsed": 0.000032999960239976645, | |
"elapsed_instrumentation": 0.0000320000690408051, | |
"return_value": { | |
"class": "User", | |
"value": "#<User:0x00007fd8e32ed308>", | |
"object_id": 191560 | |
} | |
}, | |
{ | |
"id": 355, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192860, | |
"value": " Rendered layouts/_header.html.erb (Duration: 0.5ms | Allocations: 741)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 356, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 355, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.000039000005926936865, | |
"return_value": { | |
"class": "Integer", | |
"value": "73", | |
"object_id": 147 | |
} | |
}, | |
{ | |
"id": 357, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 338, | |
"elapsed": 0.0007869999972172081, | |
"elapsed_instrumentation": 0.000012000033166259527 | |
}, | |
{ | |
"id": 358, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Request::Session", | |
"method_id": "[]", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb", | |
"lineno": 91, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "key", | |
"class": "String", | |
"object_id": 41940, | |
"value": "flash", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Request::Session", | |
"object_id": 191120, | |
"value": "#<ActionDispatch::Request::Session:0x00007fd9022e4838>" | |
} | |
}, | |
{ | |
"id": 359, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 358, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000028999987989664078 | |
}, | |
{ | |
"id": 360, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "app_views_layouts__footer_html_erb", | |
"method_id": "render", | |
"path": "app/views/layouts/_footer.html.erb", | |
"static": true, | |
"receiver": { | |
"class": "ActionView::PartialRenderer", | |
"object_id": 193640, | |
"value": "#<ActionView::PartialRenderer:0x00007fd90237db00>" | |
} | |
}, | |
{ | |
"id": 361, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionView::Resolver", | |
"method_id": "find_all", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb", | |
"lineno": 116, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 192880, | |
"value": "footer", | |
"kind": "req" | |
}, | |
{ | |
"name": "prefix", | |
"class": "String", | |
"object_id": 192900, | |
"value": "layouts", | |
"kind": "opt" | |
}, | |
{ | |
"name": "partial", | |
"class": "TrueClass", | |
"object_id": 20, | |
"value": "true", | |
"kind": "opt" | |
}, | |
{ | |
"name": "details", | |
"class": "Hash", | |
"object_id": 191640, | |
"value": "{:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}", | |
"kind": "opt", | |
"size": 4 | |
}, | |
{ | |
"name": "key", | |
"class": "Object", | |
"object_id": 45080, | |
"value": "#<Object:0x00007fd8e2646be0>", | |
"kind": "opt" | |
}, | |
{ | |
"name": "locals", | |
"class": "Array", | |
"object_id": 192920, | |
"value": "[]", | |
"kind": "opt", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "ActionView::OptimizedFileSystemResolver", | |
"object_id": 45120, | |
"value": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/app/views" | |
} | |
}, | |
{ | |
"id": 362, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 361, | |
"elapsed": 0.000005999987479299307, | |
"elapsed_instrumentation": 0.00033599999733269215, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<ActionView::Template:0x00007fd8d1998ef8>]", | |
"object_id": 69680, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 363, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192940, | |
"value": " Rendered layouts/_footer.html.erb (Duration: 0.1ms | Allocations: 56)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 364, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 363, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.000035999983083456755, | |
"return_value": { | |
"class": "Integer", | |
"value": "72", | |
"object_id": 145 | |
} | |
}, | |
{ | |
"id": 365, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 360, | |
"elapsed": 0.0005099999834783375, | |
"elapsed_instrumentation": 0.000011000025551766157 | |
}, | |
{ | |
"id": 366, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 241, | |
"elapsed": 0.017995000001974404, | |
"elapsed_instrumentation": 0.00001699995482340455 | |
}, | |
{ | |
"id": 367, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 240, | |
"elapsed": 0.018096000014338642, | |
"elapsed_instrumentation": 0.00009600003249943256, | |
"return_value": { | |
"class": "ActionView::OutputBuffer", | |
"value": "<!DOCTYPE html>\n<html>\n <head>\n <title>Followers | Ruby on Rails Tutorial Sample App</title>\n (...4168 more characters)", | |
"object_id": 192960 | |
} | |
}, | |
{ | |
"id": 368, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 233, | |
"elapsed": 0.019182000018190593, | |
"elapsed_instrumentation": 0.00009899999713525176, | |
"return_value": { | |
"class": "ActionView::OutputBuffer", | |
"value": "<!DOCTYPE html>\n<html>\n <head>\n <title>Followers | Ruby on Rails Tutorial Sample App</title>\n (...4168 more characters)", | |
"object_id": 192960 | |
} | |
}, | |
{ | |
"id": 369, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 191100, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 44620, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8d19b13e0>" | |
} | |
}, | |
{ | |
"id": 370, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 369, | |
"elapsed": 0.00001899997005239129, | |
"elapsed_instrumentation": 0.00004900002386420965, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8d19b07b0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 69760, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 371, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 192980, | |
"value": "Completed 200 OK in 21ms (Views: 17.8ms | ActiveRecord: 0.6ms | Allocations: 19949)\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 372, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 371, | |
"elapsed": 0.000011999974958598614, | |
"elapsed_instrumentation": 0.00003600004129111767, | |
"return_value": { | |
"class": "Integer", | |
"value": "84", | |
"object_id": 169 | |
} | |
}, | |
{ | |
"id": 373, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 182, | |
"elapsed": 0.02155600005062297, | |
"elapsed_instrumentation": 0.00009600003249943256, | |
"return_value": { | |
"class": "ActionView::OutputBuffer", | |
"value": "<!DOCTYPE html>\n<html>\n <head>\n <title>Followers | Ruby on Rails Tutorial Sample App</title>\n (...4168 more characters)", | |
"object_id": 192960 | |
} | |
}, | |
{ | |
"id": 374, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 181, | |
"elapsed_instrumentation": 0.0002209999947808683, | |
"http_server_response": { | |
"headers": { | |
"X-Frame-Options": "SAMEORIGIN", | |
"X-XSS-Protection": "1; mode=block", | |
"X-Content-Type-Options": "nosniff", | |
"X-Download-Options": "noopen", | |
"X-Permitted-Cross-Domain-Policies": "none", | |
"Referrer-Policy": "strict-origin-when-cross-origin", | |
"Content-Type": "text/html; charset=utf-8" | |
}, | |
"status": 200 | |
} | |
}, | |
{ | |
"id": 375, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Hash", | |
"object_id": 193000, | |
"value": "{session_id=>fda2e954db318bc48712f13d2738acbb, user_id=>762146111}", | |
"kind": "req", | |
"size": 2 | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 193020, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd8d19393b8>" | |
} | |
}, | |
{ | |
"id": 376, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 375, | |
"elapsed": 0.000014999997802078724, | |
"elapsed_instrumentation": 0.00005400000372901559, | |
"return_value": { | |
"class": "String", | |
"value": "{\"session_id\":\"fda2e954db318bc48712f13d2738acbb\",\"user_id\":762146111}", | |
"object_id": 193040 | |
} | |
}, | |
{ | |
"id": 377, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::MessageEncryptor", | |
"method_id": "encrypt_and_sign", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/message_encryptor.rb", | |
"lineno": 150, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "value", | |
"class": "String", | |
"object_id": 193040, | |
"value": "{\"session_id\":\"fda2e954db318bc48712f13d2738acbb\",\"user_id\":762146111}", | |
"kind": "req" | |
}, | |
{ | |
"name": "expires_at", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "expires_in", | |
"class": "NilClass", | |
"object_id": 8, | |
"value": null, | |
"kind": "key" | |
}, | |
{ | |
"name": "purpose", | |
"class": "String", | |
"object_id": 193060, | |
"value": "cookie._sample_app_session", | |
"kind": "key" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::MessageEncryptor", | |
"object_id": 193080, | |
"value": "#<ActiveSupport::MessageEncryptor:0x00007fd90232c9d0>" | |
} | |
}, | |
{ | |
"id": 378, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "encrypt", | |
"path": "OpenSSL::Cipher#encrypt", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 193100, | |
"value": "[]", | |
"kind": "rest", | |
"size": 0 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>", | |
"labels": [ | |
"crypto.algorithm.id-aes256-GCM" | |
] | |
} | |
}, | |
{ | |
"id": 379, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 378, | |
"elapsed": 0.0000029999646358191967, | |
"elapsed_instrumentation": 0.000045000051613897085, | |
"return_value": { | |
"class": "OpenSSL::Cipher", | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>", | |
"object_id": 193120 | |
} | |
}, | |
{ | |
"id": 380, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "key=", | |
"path": "OpenSSL::Cipher#key=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 41800, | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 381, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 380, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.000045000051613897085, | |
"return_value": { | |
"class": "String", | |
"value": "_W?xP_\u0017___\t4____%___p_]_\u0013__b_kB|", | |
"object_id": 41800 | |
} | |
}, | |
{ | |
"id": 382, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "random_iv", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/openssl/cipher.rb", | |
"lineno": 55, | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 383, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Random", | |
"method_id": "random_bytes", | |
"path": "OpenSSL::Random.random_bytes", | |
"static": true, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Integer", | |
"object_id": 25, | |
"value": "12", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Module", | |
"object_id": 28540, | |
"value": "OpenSSL::Random" | |
} | |
}, | |
{ | |
"id": 384, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 383, | |
"elapsed": 0.000011000025551766157, | |
"elapsed_instrumentation": 0.000033999967854470015, | |
"return_value": { | |
"class": "String", | |
"value": "M___b__\u0019_-+&", | |
"object_id": 193140 | |
} | |
}, | |
{ | |
"id": 385, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "iv=", | |
"path": "OpenSSL::Cipher#iv=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 193140, | |
"value": "M___b__\u0019_-+&", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 386, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 385, | |
"elapsed": 0.00000200001522898674, | |
"elapsed_instrumentation": 0.00003300001844763756, | |
"return_value": { | |
"class": "String", | |
"value": "M___b__\u0019_-+&", | |
"object_id": 193140 | |
} | |
}, | |
{ | |
"id": 387, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 382, | |
"elapsed": 0.00009300000965595245, | |
"elapsed_instrumentation": 0.00002400000812485814, | |
"return_value": { | |
"class": "String", | |
"value": "M___b__\u0019_-+&", | |
"object_id": 193140 | |
} | |
}, | |
{ | |
"id": 388, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "auth_data=", | |
"path": "OpenSSL::Cipher#auth_data=", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "String", | |
"object_id": 42340, | |
"value": "", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 389, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 388, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.000025999965146183968, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 42340 | |
} | |
}, | |
{ | |
"id": 390, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "JSON::Ext::Generator::State", | |
"method_id": "generate", | |
"path": "JSON::Ext::Generator::State#generate", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Hash", | |
"object_id": 193160, | |
"value": "{_rails=>{message=>eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIjo3NjIxNDYxMTF9, exp=>, pur=>cookie._sample_app_session}}", | |
"kind": "req", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "JSON::Ext::Generator::State", | |
"object_id": 193180, | |
"value": "#<JSON::Ext::Generator::State:0x00007fd9210dfd98>" | |
} | |
}, | |
{ | |
"id": 391, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 390, | |
"elapsed": 0.00001699995482340455, | |
"elapsed_instrumentation": 0.00005600001895800233, | |
"return_value": { | |
"class": "String", | |
"value": "{\"_rails\":{\"message\":\"eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIj (...63 more characters)", | |
"object_id": 193200 | |
} | |
}, | |
{ | |
"id": 392, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "update", | |
"path": "OpenSSL::Cipher#update", | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "Array", | |
"object_id": 193220, | |
"value": "[{\"_rails\":{\"message\":\"eyJzZXNzaW9uX2lkIjoiZmRhMmU5NTRkYjMxOGJjNDg3MTJmMTNkMjczOGFjYmIiLCJ1c2VyX2lkIj (...63 more characters)]", | |
"kind": "rest", | |
"size": 1 | |
} | |
], | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 393, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 392, | |
"elapsed": 0.000003999972250312567, | |
"elapsed_instrumentation": 0.00004299997817724943, | |
"return_value": { | |
"class": "String", | |
"value": "___a___$'O>__\u000f_;4W__\b___\u001f\u001a@__WB____\u001c'__5ANp\r__@_\\\u001a_+j__Y______+_\u001e_7_s~__L__^_I\r_____\u001dFW*_\u001e________._ (...63 more characters)", | |
"object_id": 193240 | |
} | |
}, | |
{ | |
"id": 394, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "OpenSSL::Cipher", | |
"method_id": "final", | |
"path": "OpenSSL::Cipher#final", | |
"static": false, | |
"receiver": { | |
"class": "OpenSSL::Cipher", | |
"object_id": 193120, | |
"value": "#<OpenSSL::Cipher:0x00007fd8e259e238>" | |
} | |
}, | |
{ | |
"id": 395, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 394, | |
"elapsed": 0.0000019999570213258266, | |
"elapsed_instrumentation": 0.0000219999928958714, | |
"return_value": { | |
"class": "String", | |
"value": "", | |
"object_id": 193260 | |
} | |
}, | |
{ | |
"id": 396, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 377, | |
"elapsed": 0.0004659999976865947, | |
"elapsed_instrumentation": 0.00004700000863522291, | |
"return_value": { | |
"class": "String", | |
"value": "76vwYc6ImiQnTz7AnA/qOzRXo74Ih+GyHxpAtKpXQort19wcJ4StNUFOcA2f7kCjXBrwK2qu9VnVzM+u6vkr6x7RN69zfpWaTOaZ (...164 more characters)", | |
"object_id": 193280 | |
} | |
}, | |
{ | |
"id": 397, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActionDispatch::Cookies::CookieJar", | |
"method_id": "[]=", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb", | |
"lineno": 373, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "name", | |
"class": "String", | |
"object_id": 41900, | |
"value": "_sample_app_session", | |
"kind": "req" | |
}, | |
{ | |
"name": "options", | |
"class": "Hash", | |
"object_id": 193300, | |
"value": "{:value=>76vwYc6ImiQnTz7AnA/qOzRXo74Ih+GyHxpAtKpXQort19wcJ4StNUFOcA2f7kCjXBrwK2qu9VnVzM+u6vkr6x7RN69zfpWaTOaZ (...164 more characters), :same_site=>, :path=>/, :domain=>, :expire_after=>, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :id=>fda2e954db318bc48712f13d2738acbb}", | |
"kind": "req", | |
"size": 10 | |
} | |
], | |
"receiver": { | |
"class": "ActionDispatch::Cookies::CookieJar", | |
"object_id": 191160, | |
"value": "#<ActionDispatch::Cookies::CookieJar:0x00007fd90232e578>" | |
} | |
}, | |
{ | |
"id": 398, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 397, | |
"elapsed": 0.000010000017937272787, | |
"elapsed_instrumentation": 0.00008699996396899223, | |
"return_value": { | |
"class": "String", | |
"value": "76vwYc6ImiQnTz7AnA/qOzRXo74Ih+GyHxpAtKpXQort19wcJ4StNUFOcA2f7kCjXBrwK2qu9VnVzM+u6vkr6x7RN69zfpWaTOaZ (...164 more characters)", | |
"object_id": 193280 | |
} | |
}, | |
{ | |
"id": 399, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193320, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42560, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd92114ea68>" | |
} | |
}, | |
{ | |
"id": 400, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 399, | |
"elapsed": 0.000063000014051795, | |
"elapsed_instrumentation": 0.00030999997397884727, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd92114e310 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd92114e478 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd92114e658 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 42580, | |
"size": 3 | |
} | |
}, | |
{ | |
"id": 401, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193320, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42560, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd92114ea68>" | |
} | |
}, | |
{ | |
"id": 402, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 401, | |
"elapsed": 0.000011000025551766157, | |
"elapsed_instrumentation": 0.00003799994010478258, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd92114e7c0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 42600, | |
"size": 1 | |
} | |
}, | |
{ | |
"id": 403, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 193360, | |
"value": " \u001b[1m\u001b[36mUser Exists? (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT 1 AS one FROM \"users\" INNER JOIN \"relationships (...146 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 404, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 403, | |
"elapsed": 0.000024999957531690598, | |
"elapsed_instrumentation": 0.00005300005432218313, | |
"return_value": { | |
"class": "Integer", | |
"value": "246", | |
"object_id": 493 | |
} | |
}, | |
{ | |
"id": 405, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT 1 AS one FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ? LIMIT ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 406, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 405, | |
"elapsed": 0.000264, | |
"elapsed_instrumentation": 0.00002600002335384488 | |
}, | |
{ | |
"id": 407, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 193380, | |
"value": " \u001b[1m\u001b[35m (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\" (...112 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 408, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 407, | |
"elapsed": 0.000012999982573091984, | |
"elapsed_instrumentation": 0.00004600000102072954, | |
"return_value": { | |
"class": "Integer", | |
"value": "212", | |
"object_id": 425 | |
} | |
}, | |
{ | |
"id": 409, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 410, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 409, | |
"elapsed": 0.00017, | |
"elapsed_instrumentation": 0.000014999997802078724 | |
}, | |
{ | |
"id": 411, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 193420, | |
"value": " \u001b[1m\u001b[36mUser Load (0.1ms)\u001b[0m \u001b[1m\u001b[34mSELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" (...122 more characters)", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 412, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 411, | |
"elapsed": 0.000014000048395246267, | |
"elapsed_instrumentation": 0.000046999950427562, | |
"return_value": { | |
"class": "Integer", | |
"value": "222", | |
"object_id": 445 | |
} | |
}, | |
{ | |
"id": 413, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "SELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 414, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 413, | |
"elapsed": 0.00023, | |
"elapsed_instrumentation": 0.000014999997802078724 | |
}, | |
{ | |
"id": 415, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193440, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42780, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e333ccc8>" | |
} | |
}, | |
{ | |
"id": 416, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 415, | |
"elapsed": 0.00000100000761449337, | |
"elapsed_instrumentation": 0.00004900002386420965 | |
}, | |
{ | |
"id": 417, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193440, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 42780, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd8e333ccc8>" | |
} | |
}, | |
{ | |
"id": 418, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 417, | |
"elapsed": 0.00002300000051036477, | |
"elapsed_instrumentation": 0.00004899996565654874, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd8e333ca20 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd8e333c8b8 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 42820, | |
"size": 2 | |
} | |
}, | |
{ | |
"id": 419, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "Logger::LogDevice", | |
"method_id": "write", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb", | |
"lineno": 31, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "message", | |
"class": "String", | |
"object_id": 193460, | |
"value": " \u001b[1m\u001b[35m (0.3ms)\u001b[0m \u001b[1m\u001b[31mrollback transaction\u001b[0m\n", | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "Logger::LogDevice", | |
"object_id": 14060, | |
"value": "#<Logger::LogDevice:0x00007fd9427561b0>" | |
} | |
}, | |
{ | |
"id": 420, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 419, | |
"elapsed": 0.000014999997802078724, | |
"elapsed_instrumentation": 0.00004499999340623617, | |
"return_value": { | |
"class": "Integer", | |
"value": "59", | |
"object_id": 119 | |
} | |
}, | |
{ | |
"id": 421, | |
"event": "call", | |
"thread_id": 4280, | |
"sql_query": { | |
"sql": "rollback transaction", | |
"database_type": "sqlite" | |
} | |
}, | |
{ | |
"id": 422, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 421, | |
"elapsed": 0.000371, | |
"elapsed_instrumentation": 0.00001999997766688466 | |
}, | |
{ | |
"id": 423, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_before", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 512, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193480, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 32220, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd951771bb8>" | |
} | |
}, | |
{ | |
"id": 424, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 423, | |
"elapsed": 0.0000019999570213258266, | |
"elapsed_instrumentation": 0.000060999998822808266 | |
}, | |
{ | |
"id": 425, | |
"event": "call", | |
"thread_id": 4280, | |
"defined_class": "ActiveSupport::Callbacks::CallbackSequence", | |
"method_id": "invoke_after", | |
"path": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb", | |
"lineno": 516, | |
"static": false, | |
"parameters": [ | |
{ | |
"name": "arg", | |
"class": "ActiveSupport::Callbacks::Filters::Environment", | |
"object_id": 193480, | |
"value": null, | |
"kind": "req" | |
} | |
], | |
"receiver": { | |
"class": "ActiveSupport::Callbacks::CallbackSequence", | |
"object_id": 32220, | |
"value": "#<ActiveSupport::Callbacks::CallbackSequence:0x00007fd951771bb8>" | |
} | |
}, | |
{ | |
"id": 426, | |
"event": "return", | |
"thread_id": 4280, | |
"parent_id": 425, | |
"elapsed": 0.000011000025551766157, | |
"elapsed_instrumentation": 0.00006400002166628838, | |
"return_value": { | |
"class": "Array", | |
"value": "[#<Proc:0x00007fd9517718c0 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor, #<Proc:0x00007fd951771758 /Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesuppor]", | |
"object_id": 32260, | |
"size": 2 | |
} | |
} | |
], | |
"version": "1.10.0", | |
"metadata": { | |
"app": "sample_app_6th_ed", | |
"language": { | |
"name": "ruby", | |
"engine": "ruby", | |
"version": "3.0.2" | |
}, | |
"client": { | |
"name": "appmap", | |
"url": "https://github.com/applandinc/appmap-ruby", | |
"version": "0.94.0" | |
}, | |
"frameworks": [ | |
{ | |
"name": "rails", | |
"version": "6.0.4.1" | |
}, | |
{ | |
"name": "minitest", | |
"version": "5.11.3" | |
} | |
], | |
"git": { | |
"repository": "[email protected]:land-of-apps/sample_app_6th_ed.git", | |
"branch": "appmap-e2e", | |
"commit": "72ebf1039c6ffb15be206c04133356325bde3273", | |
"status": [ | |
"M .vscode/settings.json", | |
"M Gemfile", | |
"M Gemfile.lock", | |
"M package.json", | |
"M yarn.lock", | |
"?? .idea/", | |
"?? appmap-findings.json" | |
], | |
"git_last_annotated_tag": null, | |
"git_last_tag": null, | |
"git_commits_since_last_annotated_tag": null, | |
"git_commits_since_last_tag": null | |
}, | |
"name": "Following followers page", | |
"source_location": "/Users/kgilpin/source/land-of-apps/sample_app_6th_ed/test/integration/following_test.rb:20", | |
"recorder": { | |
"name": "minitest", | |
"type": "tests" | |
}, | |
"test_status": "succeeded", | |
"fingerprints": [ | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "classDependencies", | |
"digest": "164100a8c94ea6236a23b1dae57a235fd402b3e3b2b8e91c9e0cccfa01aa29d0", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "classes", | |
"digest": "a709ba2de5c3723c1020525afd694cc4f33473b7a389a21e6f9a7ac1ef7fee29", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "httpClientRequests", | |
"digest": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "httpServerRequests", | |
"digest": "4afb21324ecc086edf890aa8f2a8b4b0c723574a4f670fc3a128a72f9a543ffe", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "info", | |
"digest": "53ff007776f04b63dcba7479e2a1ba039eb482bbb036534658200020f4f92148", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "labels", | |
"digest": "cb2cfa7662d1e4ff5f73d90ddefd00d4cd49a301abea5b67c52644265bc1eae5", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "packageDependencies", | |
"digest": "c9b9dddd2b13a0542144f8ddd476cba03e85e8874650993c76e610311aca1881", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "packages", | |
"digest": "c556e2a62d6a3133ea92f72c67575a3e1f9a9a936b8abd3fa08400d3adaa5358", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "sqlNormalized", | |
"digest": "5a344dbfe78ca023a199282047badce81c928534f98f156c7e9ea9df5757bfd3", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "sqlTables", | |
"digest": "8bb43aeefc5b65ede30ced12f8f60333c7879c749ed0828b4c0680b1e22d1d65", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "trace", | |
"digest": "06b67b69b4cfaca6dc9b265ce0e51fd785eba3a3b744848cbaac9ec6443b0781", | |
"fingerprint_algorithm": "sha256" | |
}, | |
{ | |
"appmap_digest": "30e5f186599a6cbb797b7eaaa09a79d1622313db39c9522eb64858cdb32a7b33", | |
"canonicalization_algorithm": "update", | |
"digest": "d6a400306ff4f7c358da45c4cfdf652c7675b89d4e00efc1d6f2d90cf6b25d7d", | |
"fingerprint_algorithm": "sha256" | |
} | |
] | |
}, | |
"classMap": [ | |
{ | |
"name": "actionpack", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "ActionDispatch", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Integration", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Runner", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "before_setup", | |
"type": "function", | |
"labels": [ | |
"deserialize.safe", | |
"lang.eval.safe" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/testing/integration.rb:320" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "Request", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Session", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "[]", | |
"type": "function", | |
"labels": [ | |
"http.session.read" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb:91" | |
}, | |
{ | |
"name": "destroy", | |
"type": "function", | |
"labels": [ | |
"http.session.write" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb:79" | |
}, | |
{ | |
"name": "clear", | |
"type": "function", | |
"labels": [ | |
"http.session.write", | |
"http.session.clear" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb:137" | |
}, | |
{ | |
"name": "[]=", | |
"type": "function", | |
"labels": [ | |
"http.session.write" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/request/session.rb:131" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "Cookies", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "CookieJar", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "update", | |
"type": "function", | |
"labels": [ | |
"http.session.write" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb:333" | |
}, | |
{ | |
"name": "[]", | |
"type": "function", | |
"labels": [ | |
"http.session.read" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb:317" | |
}, | |
{ | |
"name": "[]=", | |
"type": "function", | |
"labels": [ | |
"http.session.write" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_dispatch/middleware/cookies.rb:373" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "ActionController", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Instrumentation", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "process_action", | |
"type": "function", | |
"labels": [ | |
"mvc.controller" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/instrumentation.rb:19" | |
}, | |
{ | |
"name": "redirect_to", | |
"type": "function", | |
"labels": [ | |
"mvc.controller" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/instrumentation.rb:62" | |
} | |
] | |
}, | |
{ | |
"name": "Renderers", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render_to_body", | |
"type": "function", | |
"labels": [ | |
"mvc.render" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionpack-6.0.4.1/lib/action_controller/metal/renderers.rb:141" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "activesupport", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "ActiveSupport", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Callbacks", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "CallbackSequence", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "invoke_before", | |
"type": "function", | |
"labels": [ | |
"mvc.before_action" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb:512" | |
}, | |
{ | |
"name": "invoke_after", | |
"type": "function", | |
"labels": [ | |
"mvc.after_action" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/callbacks.rb:516" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "MessageEncryptor", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "encrypt_and_sign", | |
"type": "function", | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activesupport-6.0.4.1/lib/active_support/message_encryptor.rb:150" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "logger", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "Logger", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "LogDevice", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "write", | |
"type": "function", | |
"labels": [ | |
"log" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/logger/log_device.rb:31" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "activerecord", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "ActiveRecord", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Relation", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "records", | |
"type": "function", | |
"labels": [ | |
"dao.materialize" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/activerecord-6.0.4.1/lib/active_record/relation.rb:249" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "ruby", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "String", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "unpack", | |
"type": "function", | |
"labels": [ | |
"string.unpack" | |
], | |
"static": false, | |
"location": "<internal:pack>:256" | |
}, | |
{ | |
"name": "unpack1", | |
"type": "function", | |
"labels": [ | |
"string.unpack" | |
], | |
"static": false, | |
"location": "<internal:pack>:280" | |
} | |
] | |
}, | |
{ | |
"name": "Marshal", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "load", | |
"type": "function", | |
"labels": [ | |
"deserialize.unsafe" | |
], | |
"static": true, | |
"location": "Marshal.load" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "app", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "controllers", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "SessionsController", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "create", | |
"type": "function", | |
"labels": [ | |
"access.public", | |
"security.login" | |
], | |
"static": false, | |
"location": "app/controllers/sessions_controller.rb:9" | |
} | |
] | |
}, | |
{ | |
"name": "UsersController", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "followers", | |
"type": "function", | |
"static": false, | |
"location": "app/controllers/users_controller.rb:66" | |
}, | |
{ | |
"name": "page_number", | |
"type": "function", | |
"static": false, | |
"location": "app/controllers/users_controller.rb:75" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "helpers", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "SessionsHelper", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "log_in", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/sessions_helper.rb:4" | |
}, | |
{ | |
"name": "remember", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/sessions_helper.rb:9" | |
}, | |
{ | |
"name": "logged_in?", | |
"type": "function", | |
"labels": [ | |
"security.authentication" | |
], | |
"static": false, | |
"location": "app/helpers/sessions_helper.rb:35" | |
}, | |
{ | |
"name": "current_user", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/sessions_helper.rb:16" | |
}, | |
{ | |
"name": "current_user?", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/sessions_helper.rb:29" | |
} | |
] | |
}, | |
{ | |
"name": "LoggedInHelper", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "logged_in_user", | |
"type": "function", | |
"labels": [ | |
"security.require_login" | |
], | |
"static": false, | |
"location": "app/helpers/logged_in_helper.rb:10" | |
} | |
] | |
}, | |
{ | |
"name": "UsersHelper", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "gravatar_for", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/users_helper.rb:4" | |
} | |
] | |
}, | |
{ | |
"name": "ApplicationHelper", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "full_title", | |
"type": "function", | |
"static": false, | |
"location": "app/helpers/application_helper.rb:4" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "models", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "User", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "remember", | |
"type": "function", | |
"static": false, | |
"location": "app/models/user.rb:45" | |
}, | |
{ | |
"name": "new_remember_token", | |
"type": "function", | |
"labels": [ | |
"secret" | |
], | |
"static": true, | |
"location": "app/models/user.rb:30" | |
}, | |
{ | |
"name": "digest", | |
"type": "function", | |
"static": true, | |
"location": "app/models/user.rb:23" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "views", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "app_views_users_show_follow_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/users/show_follow.html.erb" | |
} | |
] | |
}, | |
{ | |
"name": "app_views_shared__stats_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/shared/_stats.html.erb" | |
} | |
] | |
}, | |
{ | |
"name": "app_views_users__user_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/users/_user.html.erb" | |
} | |
] | |
}, | |
{ | |
"name": "app_views_layouts__shim_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/layouts/_shim.html.erb" | |
} | |
] | |
}, | |
{ | |
"name": "app_views_layouts__header_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/layouts/_header.html.erb" | |
} | |
] | |
}, | |
{ | |
"name": "app_views_layouts__footer_html_erb", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "render", | |
"type": "function", | |
"labels": [ | |
"mvc.template" | |
], | |
"static": true, | |
"location": "app/views/layouts/_footer.html.erb" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "openssl", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "OpenSSL", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Random", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "random_bytes", | |
"type": "function", | |
"labels": [ | |
"random.secure" | |
], | |
"static": true, | |
"location": "OpenSSL::Random.random_bytes" | |
} | |
] | |
}, | |
{ | |
"name": "Cipher", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "encrypt", | |
"type": "function", | |
"labels": [ | |
"crypto.encrypt" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#encrypt" | |
}, | |
{ | |
"name": "key=", | |
"type": "function", | |
"labels": [ | |
"crypto.set_key" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#key=" | |
}, | |
{ | |
"name": "random_iv", | |
"type": "function", | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/3.0.0/openssl/cipher.rb:55" | |
}, | |
{ | |
"name": "iv=", | |
"type": "function", | |
"labels": [ | |
"crypto.set_iv" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#iv=" | |
}, | |
{ | |
"name": "auth_data=", | |
"type": "function", | |
"labels": [ | |
"crypto.set_auth_data" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#auth_data=" | |
}, | |
{ | |
"name": "update", | |
"type": "function", | |
"static": false, | |
"location": "OpenSSL::Cipher#update" | |
}, | |
{ | |
"name": "final", | |
"type": "function", | |
"labels": [ | |
"crypto.final" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#final" | |
}, | |
{ | |
"name": "decrypt", | |
"type": "function", | |
"labels": [ | |
"crypto.decrypt" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#decrypt" | |
}, | |
{ | |
"name": "auth_tag=", | |
"type": "function", | |
"labels": [ | |
"crypto.set_auth_tag" | |
], | |
"static": false, | |
"location": "OpenSSL::Cipher#auth_tag=" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "json", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "JSON", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Ext", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Generator", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "State", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "generate", | |
"type": "function", | |
"labels": [ | |
"format.json.generate", | |
"serialize" | |
], | |
"static": false, | |
"location": "JSON::Ext::Generator::State#generate" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "Parser", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "parse", | |
"type": "function", | |
"labels": [ | |
"format.json.parse", | |
"deserialize.safe" | |
], | |
"static": false, | |
"location": "JSON::Ext::Parser#parse" | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "actionview", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "ActionView", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "Resolver", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "find_all", | |
"type": "function", | |
"labels": [ | |
"mvc.template.resolver" | |
], | |
"static": false, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/actionview-6.0.4.1/lib/action_view/template/resolver.rb:116" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"name": "sprockets", | |
"type": "package", | |
"children": [ | |
{ | |
"name": "Sprockets", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "EncodingUtils", | |
"type": "class", | |
"children": [ | |
{ | |
"name": "unmarshaled_deflated", | |
"type": "function", | |
"labels": [ | |
"deserialize.safe" | |
], | |
"static": true, | |
"location": "/Users/kgilpin/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/sprockets-4.0.2/lib/sprockets/encoding_utils.rb:39" | |
} | |
] | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"type": "database", | |
"name": "Database", | |
"children": [ | |
{ | |
"type": "query", | |
"name": "begin transaction" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = ? LIMIT ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"email\" = ? LIMIT ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SAVEPOINT active_record_1" | |
}, | |
{ | |
"type": "query", | |
"name": "UPDATE \"users\" SET \"remember_digest\" = ?, \"updated_at\" = ? WHERE \"users\".\"id\" = ?" | |
}, | |
{ | |
"type": "query", | |
"name": "RELEASE SAVEPOINT active_record_1" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT COUNT(*) FROM \"microposts\" WHERE \"microposts\".\"user_id\" = ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"followed_id\" WHERE \"relationships\".\"follower_id\" = ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT COUNT(*) FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ? LIMIT ? OFFSET ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT 1 AS one FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ? LIMIT ?" | |
}, | |
{ | |
"type": "query", | |
"name": "SELECT \"users\".* FROM \"users\" INNER JOIN \"relationships\" ON \"users\".\"id\" = \"relationships\".\"follower_id\" WHERE \"relationships\".\"followed_id\" = ?" | |
}, | |
{ | |
"type": "query", | |
"name": "rollback transaction" | |
} | |
] | |
}, | |
{ | |
"type": "http", | |
"name": "HTTP server requests", | |
"children": [ | |
{ | |
"type": "route", | |
"name": "POST /login" | |
}, | |
{ | |
"type": "route", | |
"name": "GET /users/{id}/followers" | |
} | |
] | |
} | |
] | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="14218px" preserveAspectRatio="none" style="width:3061px;height:14218px;background:#000000;" version="1.1" viewBox="0 0 3061 14218" width="3061px" zoomAndPan="magnify"><defs/><g><rect fill="none" height="3506.0859" style="stroke:#999999;stroke-width:1.0;" width="10" x="176" y="1289.5156"/><rect fill="none" height="6070.1172" style="stroke:#999999;stroke-width:1.0;" width="10" x="176" y="6220.3828"/><rect fill="none" height="506.8594" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="84.2656"/><rect fill="none" height="3429.8203" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="1327.6484"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="1575.5781"/><rect fill="none" height="241.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="1955.7734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="2273.8359"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="4292.875"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="4414.2734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="5724.6563"/><rect fill="none" height="5993.8516" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="6258.5156"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="6506.4453"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="6608.7109"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="7731.5625"/><rect fill="none" height="3694.1484" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="8329.4219"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="10122.1953"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="10325.8594"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="11338.1797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="11584.1094"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="13219.5547"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="160.5313"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="476.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="1022.5859"/><rect fill="none" height="229.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="1491.3125"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="3123.8906"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="3435.9531"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="4604.9375"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="4910"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5800.9219"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5877.1875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5953.4531"/><rect fill="none" height="1608.3125" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="6422.1797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="12099.8359"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="12404.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13295.8203"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13372.0859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13890.0781"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="14118.875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="236.7969"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="393.4609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="667.3906"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="864.0547"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1213.25"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1408.0469"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1797.2422"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="2832.6953"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="2947.0938"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="3207.1563"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="4452.4063"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="4681.2031"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="6144.1172"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="6338.9141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="7807.8281"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8106.7578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8531.2188"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8683.75"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8931.5469"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9066.0781"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9200.6094"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9276.875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9449.5391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="10460.2578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="10765.3203"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11045.25"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11705.5078"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11947.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="12176.1016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13448.3516"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13582.8828"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13717.4141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13966.3438"/><rect fill="none" height="158.5313" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="629.2578"/><rect fill="none" height="158.5313" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="825.9219"/><rect fill="none" height="186.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="9411.4063"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="9813"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="1136.9844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="2045.0391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="2121.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="6067.8516"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="6745.2422"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="7438.6328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="10650.9219"/><rect fill="none" height="2807.6953" style="stroke:#999999;stroke-width:1.0;" width="10" x="1258" y="1759.1094"/><rect fill="none" height="3993.0781" style="stroke:#999999;stroke-width:1.0;" width="10" x="1258" y="8068.625"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1263" y="8235.1563"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="2235.7031"/><rect fill="none" height="1987.9063" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="2388.2344"/><rect fill="none" height="348.0625" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="7637.2969"/><rect fill="none" height="245.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="1428.5" y="7688.4297"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="8607.4844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="9678.6016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10007.7969"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10084.0625"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10282.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10536.5234"/><rect fill="none" height="216.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="11248.9141"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1428.5" y="11295.0469"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="11545.9766"/><rect fill="none" height="895.1875" style="stroke:#999999;stroke-width:1.0;" width="10" x="1580" y="2426.3672"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1585" y="2472.5"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1585" y="2574.7656"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="2617.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3474.0859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3550.3516"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3626.6172"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="3672.75"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="3775.0156"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3907.4141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4059.9453"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4136.2109"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4948.1328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5024.3984"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5100.6641"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="5146.7969"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="5249.0625"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5381.4609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5533.9922"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5610.2578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6828.5078"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6904.7734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6981.0391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7057.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7133.5703"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7209.8359"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7286.1016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12443.0313"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12519.2969"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12595.5625"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="12641.6953"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="12743.9609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12876.3594"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="13028.8906"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="13105.1563"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="3359.6875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="3983.6797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="4833.7344"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="5457.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="7362.3672"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="7514.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="10841.5859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="12328.6328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="12952.625"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="8447.9531"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="8855.2813"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="9889.2656"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="10968.9844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="11172.6484"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="11871.0391"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="2362" y="10612.7891"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="328.0625"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="1342.6484"/><rect fill="none" height="73.3984" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1164" x="504" y="2722.1641"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1164" x="504" y="3058.4922"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1184" x="328" y="4227.4766"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="6273.5156"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="853" x="328" y="6679.8438"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="328" x="1959" y="8382.5547"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="769" x="1345" y="9613.2031"/><rect fill="none" height="480.7266" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1786" x="328" y="9942.3984"/><rect fill="none" height="187.7969" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1786" x="328" y="11480.5781"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="181" x2="181" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="421" x2="421" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="605" x2="605" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="776" x2="776" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="943" x2="943" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1106" x2="1106" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1263" x2="1263" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1428" x2="1428" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1585" x2="1585" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1747" x2="1747" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="1895" x2="1895" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="2036" x2="2036" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="2195" x2="2195" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="2367" x2="2367" y1="44.1328" y2="14175.0078"/><line style="stroke:#999999;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="2536" x2="2536" y1="44.1328" y2="14175.0078"/><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="150" x="106" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="126" x="118" y="28.6016">HTTP server requests</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="150" x="106" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="126" x="118" y="14197.6094">HTTP server requests</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="86" x="378" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="62" x="390" y="28.6016">actionpack</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="86" x="378" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="62" x="390" y="14197.6094">actionpack</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="102" x="554" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="78" x="566" y="28.6016">activesupport</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="102" x="554" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="78" x="566" y="14197.6094">activesupport</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="60" x="746" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="758" y="28.6016">logger</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="60" x="746" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="758" y="14197.6094">logger</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="95" x="896" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="71" x="908" y="28.6016">activerecord</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="95" x="896" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="71" x="908" y="14197.6094">activerecord</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="50" x="1081" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1093" y="28.6016">ruby</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="50" x="1081" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1093" y="14197.6094">ruby</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="84" x="1221" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="1233" y="28.6016">controllers</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="84" x="1221" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="1233" y="14197.6094">controllers</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="67" x="1395" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="1407" y="28.6016">helpers</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="67" x="1395" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="1407" y="14197.6094">helpers</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="66" x="1552" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="1564" y="28.6016">models</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="66" x="1552" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="1564" y="14197.6094">models</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="68" x="1713" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="1725" y="28.6016">openssl</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="68" x="1713" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="1725" y="14197.6094">openssl</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="48" x="1871" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="1883" y="28.6016">json</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="48" x="1871" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="1883" y="14197.6094">json</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="55" x="2009" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="31" x="2021" y="28.6016">views</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="55" x="2009" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="31" x="2021" y="14197.6094">views</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="83" x="2154" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="59" x="2166" y="28.6016">actionview</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="83" x="2154" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="59" x="2166" y="14197.6094">actionview</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="80" x="2327" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="56" x="2339" y="28.6016">sprockets</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="80" x="2327" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="56" x="2339" y="14197.6094">sprockets</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="79" x="2497" y="5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="55" x="2509" y="28.6016">Database</text><rect fill="#555555" height="38.1328" rx="4" ry="4" style="stroke:#555555;stroke-width:1.0;" width="79" x="2497" y="14174.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="55" x="2509" y="14197.6094">Database</text><rect fill="none" height="3506.0859" style="stroke:#999999;stroke-width:1.0;" width="10" x="176" y="1289.5156"/><rect fill="none" height="6070.1172" style="stroke:#999999;stroke-width:1.0;" width="10" x="176" y="6220.3828"/><rect fill="none" height="506.8594" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="84.2656"/><rect fill="none" height="3429.8203" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="1327.6484"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="1575.5781"/><rect fill="none" height="241.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="1955.7734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="2273.8359"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="4292.875"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="4414.2734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="5724.6563"/><rect fill="none" height="5993.8516" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="6258.5156"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="6506.4453"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="6608.7109"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="7731.5625"/><rect fill="none" height="3694.1484" style="stroke:#999999;stroke-width:1.0;" width="10" x="421" y="8329.4219"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="10122.1953"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="10325.8594"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="11338.1797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="426" y="11584.1094"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="416" y="13219.5547"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="160.5313"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="476.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="1022.5859"/><rect fill="none" height="229.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="1491.3125"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="3123.8906"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="3435.9531"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="4604.9375"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="4910"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5800.9219"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5877.1875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="5953.4531"/><rect fill="none" height="1608.3125" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="6422.1797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="12099.8359"/><rect fill="none" height="776.5234" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="12404.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13295.8203"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13372.0859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="13890.0781"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="600" y="14118.875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="236.7969"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="393.4609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="667.3906"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="864.0547"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1213.25"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1408.0469"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="1797.2422"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="2832.6953"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="2947.0938"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="3207.1563"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="4452.4063"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="4681.2031"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="6144.1172"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="6338.9141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="7807.8281"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8106.7578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8531.2188"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8683.75"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="8931.5469"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9066.0781"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9200.6094"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9276.875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="9449.5391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="10460.2578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="10765.3203"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11045.25"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11705.5078"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="11947.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="12176.1016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13448.3516"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13582.8828"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13717.4141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="771" y="13966.3438"/><rect fill="none" height="158.5313" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="629.2578"/><rect fill="none" height="158.5313" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="825.9219"/><rect fill="none" height="186.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="9411.4063"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="938.5" y="9813"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="1136.9844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="2045.0391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="2121.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="6067.8516"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="6745.2422"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="7438.6328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1101" y="10650.9219"/><rect fill="none" height="2807.6953" style="stroke:#999999;stroke-width:1.0;" width="10" x="1258" y="1759.1094"/><rect fill="none" height="3993.0781" style="stroke:#999999;stroke-width:1.0;" width="10" x="1258" y="8068.625"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1263" y="8235.1563"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="2235.7031"/><rect fill="none" height="1987.9063" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="2388.2344"/><rect fill="none" height="348.0625" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="7637.2969"/><rect fill="none" height="245.7969" style="stroke:#999999;stroke-width:1.0;" width="10" x="1428.5" y="7688.4297"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="8607.4844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="9678.6016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10007.7969"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10084.0625"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10282.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="10536.5234"/><rect fill="none" height="216.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="11248.9141"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1428.5" y="11295.0469"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1423.5" y="11545.9766"/><rect fill="none" height="895.1875" style="stroke:#999999;stroke-width:1.0;" width="10" x="1580" y="2426.3672"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1585" y="2472.5"/><rect fill="none" height="125.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="1585" y="2574.7656"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="2617.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3474.0859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3550.3516"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3626.6172"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="3672.75"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="3775.0156"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="3907.4141"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4059.9453"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4136.2109"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="4948.1328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5024.3984"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5100.6641"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="5146.7969"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="5249.0625"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5381.4609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5533.9922"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="5610.2578"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6828.5078"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6904.7734"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="6981.0391"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7057.3047"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7133.5703"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7209.8359"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="7286.1016"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12443.0313"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12519.2969"/><rect fill="none" height="242.6641" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12595.5625"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="12641.6953"/><rect fill="none" height="49.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1747" y="12743.9609"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="12876.3594"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="13028.8906"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1742" y="13105.1563"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="3359.6875"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="3983.6797"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="4833.7344"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="5457.7266"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="7362.3672"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="7514.8984"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="10841.5859"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="12328.6328"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="1890" y="12952.625"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="8447.9531"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="8855.2813"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="9889.2656"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="10968.9844"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="11172.6484"/><rect fill="none" height="38.1328" style="stroke:#999999;stroke-width:1.0;" width="10" x="2190.5" y="11871.0391"/><rect fill="none" height="114.3984" style="stroke:#999999;stroke-width:1.0;" width="10" x="2362" y="10612.7891"/><polygon fill="#4362B1" points="404,80.2656,414,84.2656,404,88.2656,408,84.2656" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="410" y1="84.2656" y2="84.2656"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="76" x="12" y="74.7344">before_setup</text><polygon fill="#4362B1" points="593,118.3984,603,122.3984,593,126.3984,597,122.3984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="599" y1="122.3984" y2="122.3984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="438" y="112.8672">invoke_before</text><polygon fill="#4362B1" points="588,156.5313,598,160.5313,588,164.5313,592,160.5313" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="160.5313" y2="160.5313"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="438" y="151">invoke_after</text><polygon fill="#4362B1" points="437,194.6641,427,198.6641,437,202.6641,433,198.6641" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="198.6641" y2="198.6641"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="189.1328">array</text><polygon fill="#4362B1" points="759,232.7969,769,236.7969,759,240.7969,763,236.7969" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="236.7969" y2="236.7969"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="227.2656">write</text><polygon fill="#4362B1" points="437,270.9297,427,274.9297,437,278.9297,433,274.9297" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="274.9297" y2="274.9297"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="265.3984">integer</text><polygon fill="#4362B1" points="2524.5,309.0625,2534.5,313.0625,2524.5,317.0625,2528.5,313.0625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="2530.5" y1="313.0625" y2="313.0625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="99" x="438" y="303.5313">begin transaction</text><path d="M332,328.0625 L411,328.0625 L411,344.1953 L401,354.1953 L328,354.1953 L328,332.0625 A4,4 0 0 1 332,328.0625 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="328.0625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="345.6641">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="346.6641">[3 times]</text><polygon fill="#4362B1" points="759,389.4609,769,393.4609,759,397.4609,763,393.4609" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="393.4609" y2="393.4609"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="383.9297">write</text><polygon fill="#4362B1" points="437,427.5938,427,431.5938,437,435.5938,433,431.5938" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="431.5938" y2="431.5938"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="422.0625">integer</text><polygon fill="#4362B1" points="588,472.7266,598,476.7266,588,480.7266,592,476.7266" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="476.7266" y2="476.7266"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="438" y="467.1953">invoke_before</text><polygon fill="#4362B1" points="437,510.8594,427,514.8594,437,518.8594,433,514.8594" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="514.8594" y2="514.8594"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="505.3281">array</text><polygon fill="#4362B1" points="593,548.9922,603,552.9922,593,556.9922,597,552.9922" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="599" y1="552.9922" y2="552.9922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="438" y="543.4609">invoke_after</text><polygon fill="#4362B1" points="11,587.125,1,591.125,11,595.125,7,591.125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="420" y1="591.125" y2="591.125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="46" x="22" y="581.5938">boolean</text><polygon fill="#4362B1" points="926.5,625.2578,936.5,629.2578,926.5,633.2578,930.5,629.2578" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="932.5" y1="629.2578" y2="629.2578"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="12" y="619.7266">records</text><polygon fill="#4362B1" points="792,663.3906,782,667.3906,792,671.3906,788,667.3906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="937.5" y1="667.3906" y2="667.3906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="657.8594">write</text><polygon fill="#4362B1" points="926.5,701.5234,936.5,705.5234,926.5,709.5234,930.5,705.5234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="932.5" y1="705.5234" y2="705.5234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="695.9922">integer</text><polygon fill="#4362B1" points="2524.5,742.6563,2534.5,746.6563,2524.5,750.6563,2528.5,746.6563" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="948.5" x2="2530.5" y1="746.6563" y2="746.6563"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="300" x="960.5" y="737.125">SELECT "users".* FROM "users" WHERE "users"."id" =</text><path d="M2541,722.5234 L2541,748.5234 A4,4 0 0 0 2545,752.5234 L2920,752.5234 A4,4 0 0 0 2924,748.5234 L2924,728.5234 L2914,718.5234 L2545,718.5234 A4,4 0 0 0 2541,722.5234 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2914,718.5234 L2914,726.5234 A2,2 0 0 0 2916,728.5234 L2924,728.5234 L2914,718.5234 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="352" x="2552" y="740.125">SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?</text><polygon fill="#4362B1" points="11,783.7891,1,787.7891,11,791.7891,7,787.7891" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="942.5" y1="787.7891" y2="787.7891"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="778.2578">array</text><polygon fill="#4362B1" points="926.5,821.9219,936.5,825.9219,926.5,829.9219,930.5,825.9219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="932.5" y1="825.9219" y2="825.9219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="12" y="816.3906">records</text><polygon fill="#4362B1" points="792,860.0547,782,864.0547,792,868.0547,788,864.0547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="937.5" y1="864.0547" y2="864.0547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="854.5234">write</text><polygon fill="#4362B1" points="926.5,898.1875,936.5,902.1875,926.5,906.1875,930.5,902.1875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="932.5" y1="902.1875" y2="902.1875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="892.6563">integer</text><polygon fill="#4362B1" points="2524.5,939.3203,2534.5,943.3203,2524.5,947.3203,2528.5,943.3203" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="948.5" x2="2530.5" y1="943.3203" y2="943.3203"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="300" x="960.5" y="933.7891">SELECT "users".* FROM "users" WHERE "users"."id" =</text><path d="M2541,919.1875 L2541,945.1875 A4,4 0 0 0 2545,949.1875 L2920,949.1875 A4,4 0 0 0 2924,945.1875 L2924,925.1875 L2914,915.1875 L2545,915.1875 A4,4 0 0 0 2541,919.1875 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2914,915.1875 L2914,923.1875 A2,2 0 0 0 2916,925.1875 L2924,925.1875 L2914,915.1875 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="352" x="2552" y="936.7891">SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?</text><polygon fill="#4362B1" points="11,980.4531,1,984.4531,11,988.4531,7,984.4531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="942.5" y1="984.4531" y2="984.4531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="974.9219">array</text><polygon fill="#4362B1" points="588,1018.5859,598,1022.5859,588,1026.5859,592,1022.5859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="1022.5859" y2="1022.5859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="1013.0547">invoke_before</text><polygon fill="#4362B1" points="11,1056.7188,1,1060.7188,11,1064.7188,7,1060.7188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="1060.7188" y2="1060.7188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="1051.1875">array</text><polygon fill="#4362B1" points="593,1094.8516,603,1098.8516,593,1102.8516,597,1098.8516" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="599" y1="1098.8516" y2="1098.8516"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="1089.3203">invoke_after</text><polygon fill="#4362B1" points="1089,1132.9844,1099,1136.9844,1089,1140.9844,1093,1136.9844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="1095" y1="1136.9844" y2="1136.9844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="12" y="1127.4531">unpack</text><polygon fill="#4362B1" points="11,1171.1172,1,1175.1172,11,1179.1172,7,1175.1172" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="1105" y1="1175.1172" y2="1175.1172"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="1165.5859">array</text><polygon fill="#4362B1" points="759,1209.25,769,1213.25,759,1217.25,763,1213.25" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="1213.25" y2="1213.25"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="1203.7188">write</text><polygon fill="#4362B1" points="11,1247.3828,1,1251.3828,11,1255.3828,7,1251.3828" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="1251.3828" y2="1251.3828"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="1241.8516">integer</text><polygon fill="#4362B1" points="164,1285.5156,174,1289.5156,164,1293.5156,168,1289.5156" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="170" y1="1289.5156" y2="1289.5156"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="67" x="12" y="1279.9844">POST /login</text><polygon fill="#4362B1" points="404,1323.6484,414,1327.6484,404,1331.6484,408,1327.6484" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="186" x2="410" y1="1327.6484" y2="1327.6484"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="85" x="198" y="1318.1172">process_action</text><path d="M332,1342.6484 L411,1342.6484 L411,1358.7813 L401,1368.7813 L328,1368.7813 L328,1346.6484 A4,4 0 0 1 332,1342.6484 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="1342.6484"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="1360.25">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="1361.25">[2 times]</text><polygon fill="#4362B1" points="759,1404.0469,769,1408.0469,759,1412.0469,763,1408.0469" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="1408.0469" y2="1408.0469"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="1398.5156">write</text><polygon fill="#4362B1" points="437,1442.1797,427,1446.1797,437,1450.1797,433,1446.1797" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="1446.1797" y2="1446.1797"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="1436.6484">integer</text><polygon fill="#4362B1" points="588,1487.3125,598,1491.3125,588,1495.3125,592,1491.3125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="1491.3125" y2="1491.3125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="438" y="1481.7813">invoke_before</text><polygon fill="#4362B1" points="437,1525.4453,427,1529.4453,437,1533.4453,433,1529.4453" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="599" y1="1529.4453" y2="1529.4453"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="448" y="1519.9141">[]</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="473" y1="1562.5781" y2="1562.5781"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="473" x2="473" y1="1562.5781" y2="1575.5781"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="432" x2="473" y1="1575.5781" y2="1575.5781"/><polygon fill="#4362B1" points="442,1571.5781,432,1575.5781,442,1579.5781,438,1575.5781" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="443" y="1553.0469">update</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="431" y1="1623.7109" y2="1623.7109"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="389" y1="1623.7109" y2="1636.7109"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="436" y1="1636.7109" y2="1636.7109"/><polygon fill="#4362B1" points="416,1632.7109,426,1636.7109,416,1640.7109,420,1636.7109" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="390" y="1614.1797">object</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="468" y1="1669.8438" y2="1669.8438"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="468" x2="468" y1="1669.8438" y2="1682.8438"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="427" x2="468" y1="1682.8438" y2="1682.8438"/><polygon fill="#4362B1" points="437,1678.8438,427,1682.8438,437,1686.8438,433,1682.8438" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="438" y="1660.3125">[]</text><polygon fill="#4362B1" points="437,1716.9766,427,1720.9766,437,1724.9766,433,1720.9766" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="1720.9766" y2="1720.9766"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="1711.4453">array</text><polygon fill="#4362B1" points="1246,1755.1094,1256,1759.1094,1246,1763.1094,1250,1759.1094" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1252" y1="1759.1094" y2="1759.1094"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="438" y="1749.5781">create</text><polygon fill="#4362B1" points="792,1793.2422,782,1797.2422,792,1801.2422,788,1797.2422" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1257" y1="1797.2422" y2="1797.2422"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="1787.7109">write</text><polygon fill="#4362B1" points="1246,1831.375,1256,1835.375,1246,1839.375,1250,1835.375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1252" y1="1835.375" y2="1835.375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="1825.8438">integer</text><polygon fill="#4362B1" points="2524.5,1872.5078,2534.5,1876.5078,2524.5,1880.5078,2528.5,1876.5078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1268" x2="2530.5" y1="1876.5078" y2="1876.5078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="302" x="1280" y="1866.9766">SELECT "users".* FROM "users" WHERE "users"."email</text><path d="M2541,1852.375 L2541,1878.375 A4,4 0 0 0 2545,1882.375 L2940,1882.375 A4,4 0 0 0 2944,1878.375 L2944,1858.375 L2934,1848.375 L2545,1848.375 A4,4 0 0 0 2541,1852.375 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2934,1848.375 L2934,1856.375 A2,2 0 0 0 2936,1858.375 L2944,1858.375 L2934,1848.375 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="372" x="2552" y="1869.9766">SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT ?</text><polygon fill="#4362B1" points="437,1913.6406,427,1917.6406,437,1921.6406,433,1917.6406" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="1257" y1="1917.6406" y2="1917.6406"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="448" y="1908.1094">[]</text><polygon fill="#4362B1" points="442,1951.7734,432,1955.7734,442,1959.7734,438,1955.7734" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1257" y1="1955.7734" y2="1955.7734"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="453" y="1946.2422">destroy</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="473" y1="1993.9063" y2="1993.9063"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="473" x2="473" y1="1993.9063" y2="2006.9063"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="432" x2="473" y1="2006.9063" y2="2006.9063"/><polygon fill="#4362B1" points="442,2002.9063,432,2006.9063,442,2010.9063,438,2006.9063" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="443" y="1984.375">clear</text><polygon fill="#4362B1" points="1089,2041.0391,1099,2045.0391,1089,2049.0391,1093,2045.0391" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="1095" y1="2045.0391" y2="2045.0391"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="443" y="2035.5078">unpack</text><polygon fill="#4362B1" points="442,2079.1719,432,2083.1719,442,2087.1719,438,2083.1719" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="436" x2="1105" y1="2083.1719" y2="2083.1719"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="453" y="2073.6406">array</text><polygon fill="#4362B1" points="1089,2117.3047,1099,2121.3047,1089,2125.3047,1093,2121.3047" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="1095" y1="2121.3047" y2="2121.3047"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="443" y="2111.7734">unpack</text><polygon fill="#4362B1" points="442,2155.4375,432,2159.4375,442,2163.4375,438,2159.4375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="436" x2="1105" y1="2159.4375" y2="2159.4375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="453" y="2149.9063">array</text><polygon fill="#4362B1" points="1246,2193.5703,1256,2197.5703,1246,2201.5703,1250,2197.5703" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1252" y1="2197.5703" y2="2197.5703"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="46" x="438" y="2188.0391">boolean</text><polygon fill="#4362B1" points="1411.5,2231.7031,1421.5,2235.7031,1411.5,2239.7031,1415.5,2235.7031" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1268" x2="1417.5" y1="2235.7031" y2="2235.7031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="33" x="1280" y="2226.1719">log_in</text><polygon fill="#4362B1" points="442,2269.8359,432,2273.8359,442,2277.8359,438,2273.8359" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1422.5" y1="2273.8359" y2="2273.8359"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="18" x="453" y="2264.3047">[]=</text><polygon fill="#4362B1" points="1411.5,2307.9688,1421.5,2311.9688,1411.5,2315.9688,1415.5,2311.9688" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1417.5" y1="2311.9688" y2="2311.9688"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="438" y="2302.4375">integer</text><polygon fill="#4362B1" points="1279,2346.1016,1269,2350.1016,1279,2354.1016,1275,2350.1016" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1273" x2="1427.5" y1="2350.1016" y2="2350.1016"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="1290" y="2340.5703">integer</text><polygon fill="#4362B1" points="1411.5,2384.2344,1421.5,2388.2344,1411.5,2392.2344,1415.5,2388.2344" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1268" x2="1417.5" y1="2388.2344" y2="2388.2344"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="61" x="1280" y="2378.7031">remember</text><polygon fill="#4362B1" points="1568,2422.3672,1578,2426.3672,1568,2430.3672,1572,2426.3672" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1433.5" x2="1574" y1="2426.3672" y2="2426.3672"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="61" x="1445.5" y="2416.8359">remember</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1590" x2="1637" y1="2459.5" y2="2459.5"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1637" x2="1637" y1="2459.5" y2="2472.5"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1596" x2="1637" y1="2472.5" y2="2472.5"/><polygon fill="#4362B1" points="1606,2468.5,1596,2472.5,1606,2476.5,1602,2472.5" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="128" x="1607" y="2449.9688">new_remember_token</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1595" y1="2520.6328" y2="2520.6328"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1553" y1="2520.6328" y2="2533.6328"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1600" y1="2533.6328" y2="2533.6328"/><polygon fill="#4362B1" points="1580,2529.6328,1590,2533.6328,1580,2537.6328,1584,2533.6328" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1558" y="2511.1016">string</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1590" x2="1637" y1="2561.7656" y2="2561.7656"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1637" x2="1637" y1="2561.7656" y2="2574.7656"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1596" x2="1637" y1="2574.7656" y2="2574.7656"/><polygon fill="#4362B1" points="1606,2570.7656,1596,2574.7656,1606,2578.7656,1602,2574.7656" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="35" x="1607" y="2552.2344">digest</text><polygon fill="#4362B1" points="1730,2613.8984,1740,2617.8984,1730,2621.8984,1734,2617.8984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1595" x2="1736" y1="2617.8984" y2="2617.8984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="82" x="1607" y="2608.3672">random_bytes</text><polygon fill="#4362B1" points="1606,2652.0313,1596,2656.0313,1606,2660.0313,1602,2656.0313" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1600" x2="1746" y1="2656.0313" y2="2656.0313"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1617" y="2646.5">string</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1595" y1="2699.1641" y2="2699.1641"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1553" y1="2699.1641" y2="2712.1641"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1553" x2="1600" y1="2712.1641" y2="2712.1641"/><polygon fill="#4362B1" points="1580,2708.1641,1590,2712.1641,1580,2716.1641,1584,2712.1641" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="1554" y="2689.6328">object</text><path d="M508,2722.1641 L587,2722.1641 L587,2738.2969 L577,2748.2969 L504,2748.2969 L504,2726.1641 A4,4 0 0 1 508,2722.1641 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="73.3984" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1164" x="504" y="2722.1641"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="524" y="2739.7656">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="607" y="2740.7656">[3 times]</text><polygon fill="#4362B1" points="616,2783.5625,606,2787.5625,616,2791.5625,612,2787.5625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1579" y1="2787.5625" y2="2787.5625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="627" y="2778.0313">invoke_before</text><polygon fill="#4362B1" points="792,2828.6953,782,2832.6953,792,2836.6953,788,2832.6953" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1579" y1="2832.6953" y2="2832.6953"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="2823.1641">write</text><polygon fill="#4362B1" points="1568,2866.8281,1578,2870.8281,1568,2874.8281,1572,2870.8281" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1574" y1="2870.8281" y2="2870.8281"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="2861.2969">integer</text><polygon fill="#4362B1" points="2524.5,2904.9609,2534.5,2908.9609,2524.5,2912.9609,2528.5,2908.9609" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1590" x2="2530.5" y1="2908.9609" y2="2908.9609"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="160" x="1602" y="2899.4297">SAVEPOINT active_record_1</text><polygon fill="#4362B1" points="792,2943.0938,782,2947.0938,792,2951.0938,788,2947.0938" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1579" y1="2947.0938" y2="2947.0938"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="2937.5625">write</text><polygon fill="#4362B1" points="1568,2981.2266,1578,2985.2266,1568,2989.2266,1572,2985.2266" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1574" y1="2985.2266" y2="2985.2266"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="2975.6953">integer</text><polygon fill="#4362B1" points="2524.5,3029.4258,2534.5,3033.4258,2524.5,3037.4258,2528.5,3033.4258" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1590" x2="2530.5" y1="3033.4258" y2="3033.4258"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="313" x="1602" y="3023.8945">UPDATE "users" SET "remember_digest" = ?, "updated</text><path d="M2541,3002.2266 L2541,3042.2266 A4,4 0 0 0 2545,3046.2266 L3050,3046.2266 A4,4 0 0 0 3054,3042.2266 L3054,3008.2266 L3044,2998.2266 L2545,2998.2266 A4,4 0 0 0 2541,3002.2266 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M3044,2998.2266 L3044,3006.2266 A2,2 0 0 0 3046,3008.2266 L3054,3008.2266 L3044,2998.2266 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="482" x="2552" y="3019.8281">UPDATE "users" SET "remember_digest" = ?, "updated_at" = ? WHERE "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="5" x="2552" y="3033.9609">?</text><path d="M508,3058.4922 L587,3058.4922 L587,3074.625 L577,3084.625 L504,3084.625 L504,3062.4922 A4,4 0 0 1 508,3058.4922 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1164" x="504" y="3058.4922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="524" y="3076.0938">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="607" y="3077.0938">[3 times]</text><polygon fill="#4362B1" points="621,3119.8906,611,3123.8906,621,3127.8906,617,3123.8906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="615" x2="1579" y1="3123.8906" y2="3123.8906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="632" y="3114.3594">invoke_after</text><polygon fill="#4362B1" points="1568,3158.0234,1578,3162.0234,1568,3166.0234,1572,3162.0234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="605" x2="1574" y1="3162.0234" y2="3162.0234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="617" y="3152.4922">array</text><polygon fill="#4362B1" points="792,3203.1563,782,3207.1563,792,3211.1563,788,3207.1563" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1579" y1="3207.1563" y2="3207.1563"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="3197.625">write</text><polygon fill="#4362B1" points="1568,3241.2891,1578,3245.2891,1568,3249.2891,1572,3245.2891" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1574" y1="3245.2891" y2="3245.2891"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="3235.7578">integer</text><polygon fill="#4362B1" points="2524.5,3279.4219,2534.5,3283.4219,2524.5,3287.4219,2528.5,3283.4219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1590" x2="2530.5" y1="3283.4219" y2="3283.4219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="213" x="1602" y="3273.8906">RELEASE SAVEPOINT active_record_1</text><polygon fill="#4362B1" points="1444.5,3317.5547,1434.5,3321.5547,1444.5,3325.5547,1440.5,3321.5547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1438.5" x2="1584" y1="3321.5547" y2="3321.5547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="46" x="1455.5" y="3312.0234">boolean</text><polygon fill="#4362B1" points="1878,3355.6875,1888,3359.6875,1878,3363.6875,1882,3359.6875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1433.5" x2="1884" y1="3359.6875" y2="3359.6875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="1445.5" y="3350.1563">generate</text><polygon fill="#4362B1" points="1444.5,3393.8203,1434.5,3397.8203,1444.5,3401.8203,1440.5,3397.8203" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1438.5" x2="1894" y1="3397.8203" y2="3397.8203"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1455.5" y="3388.2891">string</text><polygon fill="#4362B1" points="621,3431.9531,611,3435.9531,621,3439.9531,617,3435.9531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="615" x2="1422.5" y1="3435.9531" y2="3435.9531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="100" x="632" y="3426.4219">encrypt_and_sign</text><polygon fill="#4362B1" points="1730,3470.0859,1740,3474.0859,1730,3478.0859,1734,3474.0859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="3474.0859" y2="3474.0859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="622" y="3464.5547">encrypt</text><polygon fill="#4362B1" points="621,3508.2188,611,3512.2188,621,3516.2188,617,3512.2188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="3512.2188" y2="3512.2188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="632" y="3502.6875">object</text><polygon fill="#4362B1" points="1730,3546.3516,1740,3550.3516,1730,3554.3516,1734,3550.3516" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="3550.3516" y2="3550.3516"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="622" y="3540.8203">key=</text><polygon fill="#4362B1" points="621,3584.4844,611,3588.4844,621,3592.4844,617,3588.4844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="3588.4844" y2="3588.4844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="3578.9531">string</text><polygon fill="#4362B1" points="1730,3622.6172,1740,3626.6172,1730,3630.6172,1734,3626.6172" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="3626.6172" y2="3626.6172"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="622" y="3617.0859">random_iv</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="3659.75" y2="3659.75"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="3659.75" y2="3672.75"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="3672.75" y2="3672.75"/><polygon fill="#4362B1" points="1768,3668.75,1758,3672.75,1768,3676.75,1764,3672.75" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="82" x="1769" y="3650.2188">random_bytes</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="3720.8828" y2="3720.8828"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="3720.8828" y2="3733.8828"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="3733.8828" y2="3733.8828"/><polygon fill="#4362B1" points="1742,3729.8828,1752,3733.8828,1742,3737.8828,1746,3733.8828" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="3711.3516">string</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="3762.0156" y2="3762.0156"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="3762.0156" y2="3775.0156"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="3775.0156" y2="3775.0156"/><polygon fill="#4362B1" points="1768,3771.0156,1758,3775.0156,1768,3779.0156,1764,3775.0156" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="19" x="1769" y="3752.4844">iv=</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="3823.1484" y2="3823.1484"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="3823.1484" y2="3836.1484"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="3836.1484" y2="3836.1484"/><polygon fill="#4362B1" points="1742,3832.1484,1752,3836.1484,1742,3840.1484,1746,3836.1484" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="3813.6172">string</text><polygon fill="#4362B1" points="621,3865.2813,611,3869.2813,621,3873.2813,617,3869.2813" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="3869.2813" y2="3869.2813"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="3859.75">string</text><polygon fill="#4362B1" points="1730,3903.4141,1740,3907.4141,1730,3911.4141,1734,3907.4141" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="3907.4141" y2="3907.4141"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="67" x="622" y="3897.8828">auth_data=</text><polygon fill="#4362B1" points="621,3941.5469,611,3945.5469,621,3949.5469,617,3945.5469" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="3945.5469" y2="3945.5469"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="3936.0156">string</text><polygon fill="#4362B1" points="1878,3979.6797,1888,3983.6797,1878,3987.6797,1882,3983.6797" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1884" y1="3983.6797" y2="3983.6797"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="622" y="3974.1484">generate</text><polygon fill="#4362B1" points="621,4017.8125,611,4021.8125,621,4025.8125,617,4021.8125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1894" y1="4021.8125" y2="4021.8125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="4012.2813">string</text><polygon fill="#4362B1" points="1730,4055.9453,1740,4059.9453,1730,4063.9453,1734,4059.9453" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="4059.9453" y2="4059.9453"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="622" y="4050.4141">update</text><polygon fill="#4362B1" points="621,4094.0781,611,4098.0781,621,4102.0781,617,4098.0781" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="4098.0781" y2="4098.0781"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="4088.5469">string</text><polygon fill="#4362B1" points="1730,4132.2109,1740,4136.2109,1730,4140.2109,1734,4136.2109" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="4136.2109" y2="4136.2109"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="622" y="4126.6797">final</text><polygon fill="#4362B1" points="621,4170.3438,611,4174.3438,621,4178.3438,617,4174.3438" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="4174.3438" y2="4174.3438"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="4164.8125">string</text><polygon fill="#4362B1" points="1411.5,4208.4766,1421.5,4212.4766,1411.5,4216.4766,1415.5,4212.4766" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="605" x2="1417.5" y1="4212.4766" y2="4212.4766"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="617" y="4202.9453">string</text><path d="M332,4227.4766 L411,4227.4766 L411,4243.6094 L401,4253.6094 L328,4253.6094 L328,4231.4766 A4,4 0 0 1 332,4227.4766 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1184" x="328" y="4227.4766"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="4245.0781">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="4246.0781">[2 times]</text><polygon fill="#4362B1" points="442,4288.875,432,4292.875,442,4296.875,438,4292.875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1422.5" y1="4292.875" y2="4292.875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="18" x="453" y="4283.3438">[]=</text><polygon fill="#4362B1" points="1411.5,4327.0078,1421.5,4331.0078,1411.5,4335.0078,1415.5,4331.0078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1417.5" y1="4331.0078" y2="4331.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="438" y="4321.4766">string</text><polygon fill="#4362B1" points="1279,4372.1406,1269,4376.1406,1279,4380.1406,1275,4376.1406" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1273" x2="1427.5" y1="4376.1406" y2="4376.1406"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1290" y="4366.6094">string</text><polygon fill="#4362B1" points="442,4410.2734,432,4414.2734,442,4418.2734,438,4414.2734" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1257" y1="4414.2734" y2="4414.2734"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="62" x="453" y="4404.7422">redirect_to</text><polygon fill="#4362B1" points="759,4448.4063,769,4452.4063,759,4456.4063,763,4452.4063" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="765" y1="4452.4063" y2="4452.4063"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="443" y="4442.875">write</text><polygon fill="#4362B1" points="442,4486.5391,432,4490.5391,442,4494.5391,438,4490.5391" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="436" x2="775" y1="4490.5391" y2="4490.5391"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="453" y="4481.0078">integer</text><polygon fill="#4362B1" points="1246,4524.6719,1256,4528.6719,1246,4532.6719,1250,4528.6719" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1252" y1="4528.6719" y2="4528.6719"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="438" y="4519.1406">string</text><polygon fill="#4362B1" points="437,4562.8047,427,4566.8047,437,4570.8047,433,4566.8047" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1262" y1="4566.8047" y2="4566.8047"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="4557.2734">string</text><polygon fill="#4362B1" points="588,4600.9375,598,4604.9375,588,4608.9375,592,4604.9375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="4604.9375" y2="4604.9375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="438" y="4595.4063">invoke_after</text><polygon fill="#4362B1" points="437,4639.0703,427,4643.0703,437,4647.0703,433,4643.0703" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="4643.0703" y2="4643.0703"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="4633.5391">array</text><polygon fill="#4362B1" points="759,4677.2031,769,4681.2031,759,4685.2031,763,4681.2031" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="4681.2031" y2="4681.2031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="4671.6719">write</text><polygon fill="#4362B1" points="437,4715.3359,427,4719.3359,437,4723.3359,433,4719.3359" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="4719.3359" y2="4719.3359"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="4709.8047">integer</text><polygon fill="#4362B1" points="197,4753.4688,187,4757.4688,197,4761.4688,193,4757.4688" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="191" x2="420" y1="4757.4688" y2="4757.4688"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="208" y="4747.9375">string</text><polygon fill="#4362B1" points="11,4791.6016,1,4795.6016,11,4799.6016,7,4795.6016" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="180" y1="4795.6016" y2="4795.6016"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="22" y="4786.0703">302</text><polygon fill="#4362B1" points="1878,4829.7344,1888,4833.7344,1878,4837.7344,1882,4833.7344" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="1884" y1="4833.7344" y2="4833.7344"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="12" y="4824.2031">generate</text><polygon fill="#4362B1" points="11,4867.8672,1,4871.8672,11,4875.8672,7,4871.8672" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="1894" y1="4871.8672" y2="4871.8672"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="4862.3359">string</text><polygon fill="#4362B1" points="588,4906,598,4910,588,4914,592,4910" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="4910" y2="4910"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="100" x="12" y="4900.4688">encrypt_and_sign</text><polygon fill="#4362B1" points="1730,4944.1328,1740,4948.1328,1730,4952.1328,1734,4948.1328" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="4948.1328" y2="4948.1328"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="622" y="4938.6016">encrypt</text><polygon fill="#4362B1" points="621,4982.2656,611,4986.2656,621,4990.2656,617,4986.2656" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="4986.2656" y2="4986.2656"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="95" x="632" y="4976.7344">OpenSSL::Cipher</text><polygon fill="#4362B1" points="1730,5020.3984,1740,5024.3984,1730,5028.3984,1734,5024.3984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="5024.3984" y2="5024.3984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="622" y="5014.8672">key=</text><polygon fill="#4362B1" points="621,5058.5313,611,5062.5313,621,5066.5313,617,5062.5313" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="5062.5313" y2="5062.5313"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5053">string</text><polygon fill="#4362B1" points="1730,5096.6641,1740,5100.6641,1730,5104.6641,1734,5100.6641" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="5100.6641" y2="5100.6641"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="622" y="5091.1328">random_iv</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="5133.7969" y2="5133.7969"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="5133.7969" y2="5146.7969"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="5146.7969" y2="5146.7969"/><polygon fill="#4362B1" points="1768,5142.7969,1758,5146.7969,1768,5150.7969,1764,5146.7969" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="82" x="1769" y="5124.2656">random_bytes</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="5194.9297" y2="5194.9297"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="5194.9297" y2="5207.9297"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="5207.9297" y2="5207.9297"/><polygon fill="#4362B1" points="1742,5203.9297,1752,5207.9297,1742,5211.9297,1746,5207.9297" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="5185.3984">string</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="5236.0625" y2="5236.0625"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="5236.0625" y2="5249.0625"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="5249.0625" y2="5249.0625"/><polygon fill="#4362B1" points="1768,5245.0625,1758,5249.0625,1768,5253.0625,1764,5249.0625" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="19" x="1769" y="5226.5313">iv=</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="5297.1953" y2="5297.1953"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="5297.1953" y2="5310.1953"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="5310.1953" y2="5310.1953"/><polygon fill="#4362B1" points="1742,5306.1953,1752,5310.1953,1742,5314.1953,1746,5310.1953" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="5287.6641">string</text><polygon fill="#4362B1" points="621,5339.3281,611,5343.3281,621,5347.3281,617,5343.3281" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="5343.3281" y2="5343.3281"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5333.7969">string</text><polygon fill="#4362B1" points="1730,5377.4609,1740,5381.4609,1730,5385.4609,1734,5381.4609" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="5381.4609" y2="5381.4609"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="67" x="622" y="5371.9297">auth_data=</text><polygon fill="#4362B1" points="621,5415.5938,611,5419.5938,621,5423.5938,617,5419.5938" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="5419.5938" y2="5419.5938"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5410.0625">string</text><polygon fill="#4362B1" points="1878,5453.7266,1888,5457.7266,1878,5461.7266,1882,5457.7266" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1884" y1="5457.7266" y2="5457.7266"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="622" y="5448.1953">generate</text><polygon fill="#4362B1" points="621,5491.8594,611,5495.8594,621,5499.8594,617,5495.8594" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1894" y1="5495.8594" y2="5495.8594"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5486.3281">string</text><polygon fill="#4362B1" points="1730,5529.9922,1740,5533.9922,1730,5537.9922,1734,5533.9922" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="5533.9922" y2="5533.9922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="622" y="5524.4609">update</text><polygon fill="#4362B1" points="621,5568.125,611,5572.125,621,5576.125,617,5572.125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="5572.125" y2="5572.125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5562.5938">string</text><polygon fill="#4362B1" points="1730,5606.2578,1740,5610.2578,1730,5614.2578,1734,5610.2578" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="5610.2578" y2="5610.2578"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="622" y="5600.7266">final</text><polygon fill="#4362B1" points="621,5644.3906,611,5648.3906,621,5652.3906,617,5648.3906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="5648.3906" y2="5648.3906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="5638.8594">string</text><polygon fill="#4362B1" points="11,5682.5234,1,5686.5234,11,5690.5234,7,5686.5234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="5686.5234" y2="5686.5234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="5676.9922">string</text><polygon fill="#4362B1" points="404,5720.6563,414,5724.6563,404,5728.6563,408,5724.6563" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="410" y1="5724.6563" y2="5724.6563"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="18" x="12" y="5715.125">[]=</text><polygon fill="#4362B1" points="11,5758.7891,1,5762.7891,11,5766.7891,7,5762.7891" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="420" y1="5762.7891" y2="5762.7891"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="5753.2578">string</text><polygon fill="#4362B1" points="588,5796.9219,598,5800.9219,588,5804.9219,592,5800.9219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="5800.9219" y2="5800.9219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="5791.3906">invoke_before</text><polygon fill="#4362B1" points="11,5835.0547,1,5839.0547,11,5843.0547,7,5839.0547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="5839.0547" y2="5839.0547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="5829.5234">array</text><polygon fill="#4362B1" points="588,5873.1875,598,5877.1875,588,5881.1875,592,5877.1875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="5877.1875" y2="5877.1875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="5867.6563">invoke_after</text><polygon fill="#4362B1" points="11,5911.3203,1,5915.3203,11,5919.3203,7,5915.3203" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="5915.3203" y2="5915.3203"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="5905.7891">array</text><polygon fill="#4362B1" points="588,5949.4531,598,5953.4531,588,5957.4531,592,5953.4531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="5953.4531" y2="5953.4531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="5943.9219">invoke_before</text><polygon fill="#4362B1" points="11,5987.5859,1,5991.5859,11,5995.5859,7,5991.5859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="5991.5859" y2="5991.5859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="5982.0547">array</text><polygon fill="#4362B1" points="593,6025.7188,603,6029.7188,593,6033.7188,597,6029.7188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="599" y1="6029.7188" y2="6029.7188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="6020.1875">invoke_after</text><polygon fill="#4362B1" points="1089,6063.8516,1099,6067.8516,1089,6071.8516,1093,6067.8516" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="1095" y1="6067.8516" y2="6067.8516"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="42" x="12" y="6058.3203">unpack</text><polygon fill="#4362B1" points="11,6101.9844,1,6105.9844,11,6109.9844,7,6105.9844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="1105" y1="6105.9844" y2="6105.9844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="6096.4531">array</text><polygon fill="#4362B1" points="759,6140.1172,769,6144.1172,759,6148.1172,763,6144.1172" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="6144.1172" y2="6144.1172"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="6134.5859">write</text><polygon fill="#4362B1" points="11,6178.25,1,6182.25,11,6186.25,7,6182.25" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="6182.25" y2="6182.25"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="6172.7188">integer</text><polygon fill="#4362B1" points="164,6216.3828,174,6220.3828,164,6224.3828,168,6220.3828" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="170" y1="6220.3828" y2="6220.3828"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="147" x="12" y="6210.8516">GET /users/{id}/followers</text><polygon fill="#4362B1" points="404,6254.5156,414,6258.5156,404,6262.5156,408,6258.5156" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="186" x2="410" y1="6258.5156" y2="6258.5156"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="85" x="198" y="6248.9844">process_action</text><path d="M332,6273.5156 L411,6273.5156 L411,6289.6484 L401,6299.6484 L328,6299.6484 L328,6277.5156 A4,4 0 0 1 332,6273.5156 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="528" x="328" y="6273.5156"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="6291.1172">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="6292.1172">[2 times]</text><polygon fill="#4362B1" points="759,6334.9141,769,6338.9141,759,6342.9141,763,6338.9141" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="6338.9141" y2="6338.9141"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="6329.3828">write</text><polygon fill="#4362B1" points="437,6373.0469,427,6377.0469,437,6381.0469,433,6377.0469" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="6377.0469" y2="6377.0469"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="6367.5156">integer</text><polygon fill="#4362B1" points="588,6418.1797,598,6422.1797,588,6426.1797,592,6422.1797" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="6422.1797" y2="6422.1797"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="438" y="6412.6484">invoke_before</text><polygon fill="#4362B1" points="437,6456.3125,427,6460.3125,437,6464.3125,433,6460.3125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="599" y1="6460.3125" y2="6460.3125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="448" y="6450.7813">[]</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="473" y1="6493.4453" y2="6493.4453"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="473" x2="473" y1="6493.4453" y2="6506.4453"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="432" x2="473" y1="6506.4453" y2="6506.4453"/><polygon fill="#4362B1" points="442,6502.4453,432,6506.4453,442,6510.4453,438,6506.4453" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="443" y="6483.9141">update</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="431" y1="6554.5781" y2="6554.5781"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="389" y1="6554.5781" y2="6567.5781"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="436" y1="6567.5781" y2="6567.5781"/><polygon fill="#4362B1" points="416,6563.5781,426,6567.5781,416,6571.5781,420,6567.5781" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="201" x="225" y="6545.0469">ActionDispatch::Cookies::CookieJar</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="473" y1="6595.7109" y2="6595.7109"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="473" x2="473" y1="6595.7109" y2="6608.7109"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="432" x2="473" y1="6608.7109" y2="6608.7109"/><polygon fill="#4362B1" points="442,6604.7109,432,6608.7109,442,6612.7109,438,6608.7109" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="443" y="6586.1797">[]</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="431" y1="6656.8438" y2="6656.8438"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="389" y1="6656.8438" y2="6669.8438"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="389" x2="436" y1="6669.8438" y2="6669.8438"/><polygon fill="#4362B1" points="416,6665.8438,426,6669.8438,416,6673.8438,420,6669.8438" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="394" y="6647.3125">string</text><path d="M332,6679.8438 L411,6679.8438 L411,6695.9766 L401,6705.9766 L328,6705.9766 L328,6683.8438 A4,4 0 0 1 332,6679.8438 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="853" x="328" y="6679.8438"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="6697.4453">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="6698.4453">[3 times]</text><polygon fill="#4362B1" points="1089,6741.2422,1099,6745.2422,1089,6749.2422,1093,6745.2422" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1095" y1="6745.2422" y2="6745.2422"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="50" x="438" y="6735.7109">unpack1</text><polygon fill="#4362B1" points="437,6779.375,427,6783.375,437,6787.375,433,6783.375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1105" y1="6783.375" y2="6783.375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="6773.8438">string</text><polygon fill="#4362B1" points="1730,6824.5078,1740,6828.5078,1730,6832.5078,1734,6828.5078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="6828.5078" y2="6828.5078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="438" y="6818.9766">decrypt</text><polygon fill="#4362B1" points="437,6862.6406,427,6866.6406,437,6870.6406,433,6866.6406" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="6866.6406" y2="6866.6406"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="95" x="448" y="6857.1094">OpenSSL::Cipher</text><polygon fill="#4362B1" points="1730,6900.7734,1740,6904.7734,1730,6908.7734,1734,6904.7734" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="6904.7734" y2="6904.7734"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="438" y="6895.2422">key=</text><polygon fill="#4362B1" points="437,6938.9063,427,6942.9063,437,6946.9063,433,6942.9063" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="6942.9063" y2="6942.9063"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="6933.375">string</text><polygon fill="#4362B1" points="1730,6977.0391,1740,6981.0391,1730,6985.0391,1734,6981.0391" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="6981.0391" y2="6981.0391"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="19" x="438" y="6971.5078">iv=</text><polygon fill="#4362B1" points="437,7015.1719,427,7019.1719,437,7023.1719,433,7019.1719" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="7019.1719" y2="7019.1719"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7009.6406">string</text><polygon fill="#4362B1" points="1730,7053.3047,1740,7057.3047,1730,7061.3047,1734,7057.3047" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="7057.3047" y2="7057.3047"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="59" x="438" y="7047.7734">auth_tag=</text><polygon fill="#4362B1" points="437,7091.4375,427,7095.4375,437,7099.4375,433,7095.4375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="7095.4375" y2="7095.4375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7085.9063">string</text><polygon fill="#4362B1" points="1730,7129.5703,1740,7133.5703,1730,7137.5703,1734,7133.5703" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="7133.5703" y2="7133.5703"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="67" x="438" y="7124.0391">auth_data=</text><polygon fill="#4362B1" points="437,7167.7031,427,7171.7031,437,7175.7031,433,7171.7031" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="7171.7031" y2="7171.7031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7162.1719">string</text><polygon fill="#4362B1" points="1730,7205.8359,1740,7209.8359,1730,7213.8359,1734,7209.8359" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="7209.8359" y2="7209.8359"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="438" y="7200.3047">update</text><polygon fill="#4362B1" points="437,7243.9688,427,7247.9688,437,7251.9688,433,7247.9688" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="7247.9688" y2="7247.9688"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7238.4375">string</text><polygon fill="#4362B1" points="1730,7282.1016,1740,7286.1016,1730,7290.1016,1734,7286.1016" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1736" y1="7286.1016" y2="7286.1016"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="438" y="7276.5703">final</text><polygon fill="#4362B1" points="437,7320.2344,427,7324.2344,437,7328.2344,433,7324.2344" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1746" y1="7324.2344" y2="7324.2344"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7314.7031">string</text><polygon fill="#4362B1" points="1878,7358.3672,1888,7362.3672,1878,7366.3672,1882,7362.3672" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1884" y1="7362.3672" y2="7362.3672"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="33" x="438" y="7352.8359">parse</text><polygon fill="#4362B1" points="437,7396.5,427,7400.5,437,7404.5,433,7400.5" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1894" y1="7400.5" y2="7400.5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="448" y="7390.9688">object</text><polygon fill="#4362B1" points="1089,7434.6328,1099,7438.6328,1089,7442.6328,1093,7438.6328" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1095" y1="7438.6328" y2="7438.6328"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="50" x="438" y="7429.1016">unpack1</text><polygon fill="#4362B1" points="437,7472.7656,427,7476.7656,437,7480.7656,433,7476.7656" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1105" y1="7476.7656" y2="7476.7656"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="448" y="7467.2344">string</text><polygon fill="#4362B1" points="1878,7510.8984,1888,7514.8984,1878,7518.8984,1882,7514.8984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1884" y1="7514.8984" y2="7514.8984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="33" x="438" y="7505.3672">parse</text><polygon fill="#4362B1" points="437,7549.0313,427,7553.0313,437,7557.0313,433,7553.0313" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1894" y1="7553.0313" y2="7553.0313"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="448" y="7543.5">object</text><polygon fill="#4362B1" points="1416.5,7587.1641,1426.5,7591.1641,1416.5,7595.1641,1420.5,7591.1641" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1422.5" y1="7591.1641" y2="7591.1641"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="86" x="622" y="7581.6328">logged_in_user</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1428.5" x2="1475.5" y1="7624.2969" y2="7624.2969"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1475.5" x2="1475.5" y1="7624.2969" y2="7637.2969"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1434.5" x2="1475.5" y1="7637.2969" y2="7637.2969"/><polygon fill="#4362B1" points="1444.5,7633.2969,1434.5,7637.2969,1444.5,7641.2969,1440.5,7637.2969" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="1445.5" y="7614.7656">logged_in?</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1433.5" x2="1480.5" y1="7675.4297" y2="7675.4297"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1480.5" x2="1480.5" y1="7675.4297" y2="7688.4297"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1439.5" x2="1480.5" y1="7688.4297" y2="7688.4297"/><polygon fill="#4362B1" points="1449.5,7684.4297,1439.5,7688.4297,1449.5,7692.4297,1445.5,7688.4297" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="72" x="1450.5" y="7665.8984">current_user</text><polygon fill="#4362B1" points="442,7727.5625,432,7731.5625,442,7735.5625,438,7731.5625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1427.5" y1="7731.5625" y2="7731.5625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="453" y="7722.0313">[]</text><polygon fill="#4362B1" points="1416.5,7765.6953,1426.5,7769.6953,1416.5,7773.6953,1420.5,7769.6953" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1422.5" y1="7769.6953" y2="7769.6953"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="438" y="7760.1641">integer</text><polygon fill="#4362B1" points="792,7803.8281,782,7807.8281,792,7811.8281,788,7807.8281" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1427.5" y1="7807.8281" y2="7807.8281"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="7798.2969">write</text><polygon fill="#4362B1" points="1416.5,7841.9609,1426.5,7845.9609,1416.5,7849.9609,1420.5,7845.9609" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1422.5" y1="7845.9609" y2="7845.9609"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="7836.4297">integer</text><polygon fill="#4362B1" points="2524.5,7883.0938,2534.5,7887.0938,2524.5,7891.0938,2528.5,7887.0938" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2530.5" y1="7887.0938" y2="7887.0938"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="300" x="1450.5" y="7877.5625">SELECT "users".* FROM "users" WHERE "users"."id" =</text><path d="M2541,7862.9609 L2541,7888.9609 A4,4 0 0 0 2545,7892.9609 L2920,7892.9609 A4,4 0 0 0 2924,7888.9609 L2924,7868.9609 L2914,7858.9609 L2545,7858.9609 A4,4 0 0 0 2541,7862.9609 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2914,7858.9609 L2914,7866.9609 A2,2 0 0 0 2916,7868.9609 L2924,7868.9609 L2914,7858.9609 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="352" x="2552" y="7880.5625">SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1438.5" y1="7933.2266" y2="7933.2266"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1396.5" y1="7933.2266" y2="7946.2266"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1443.5" y1="7946.2266" y2="7946.2266"/><polygon fill="#4362B1" points="1423.5,7942.2266,1433.5,7946.2266,1423.5,7950.2266,1427.5,7946.2266" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="1397.5" y="7923.6953">object</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1433.5" y1="7984.3594" y2="7984.3594"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1391.5" y1="7984.3594" y2="7997.3594"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1438.5" y1="7997.3594" y2="7997.3594"/><polygon fill="#4362B1" points="1418.5,7993.3594,1428.5,7997.3594,1418.5,8001.3594,1422.5,7997.3594" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="46" x="1382.5" y="7974.8281">boolean</text><polygon fill="#4362B1" points="437,8026.4922,427,8030.4922,437,8034.4922,433,8030.4922" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="8030.4922" y2="8030.4922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="8020.9609">array</text><polygon fill="#4362B1" points="1246,8064.625,1256,8068.625,1246,8072.625,1250,8068.625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="1252" y1="8068.625" y2="8068.625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="438" y="8059.0938">followers</text><polygon fill="#4362B1" points="792,8102.7578,782,8106.7578,792,8110.7578,788,8106.7578" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="1257" y1="8106.7578" y2="8106.7578"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="8097.2266">write</text><polygon fill="#4362B1" points="1246,8140.8906,1256,8144.8906,1246,8148.8906,1250,8144.8906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="1252" y1="8144.8906" y2="8144.8906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="8135.3594">integer</text><polygon fill="#4362B1" points="2524.5,8182.0234,2534.5,8186.0234,2524.5,8190.0234,2528.5,8186.0234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1268" x2="2530.5" y1="8186.0234" y2="8186.0234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="300" x="1280" y="8176.4922">SELECT "users".* FROM "users" WHERE "users"."id" =</text><path d="M2541,8161.8906 L2541,8187.8906 A4,4 0 0 0 2545,8191.8906 L2920,8191.8906 A4,4 0 0 0 2924,8187.8906 L2924,8167.8906 L2914,8157.8906 L2545,8157.8906 A4,4 0 0 0 2541,8161.8906 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2914,8157.8906 L2914,8165.8906 A2,2 0 0 0 2916,8167.8906 L2924,8167.8906 L2914,8157.8906 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="352" x="2552" y="8179.4922">SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1268" x2="1315" y1="8222.1563" y2="8222.1563"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1315" x2="1315" y1="8222.1563" y2="8235.1563"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1274" x2="1315" y1="8235.1563" y2="8235.1563"/><polygon fill="#4362B1" points="1284,8231.1563,1274,8235.1563,1284,8239.1563,1280,8235.1563" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="80" x="1285" y="8212.625">page_number</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1231" x2="1273" y1="8283.2891" y2="8283.2891"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1231" x2="1231" y1="8283.2891" y2="8296.2891"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1231" x2="1278" y1="8296.2891" y2="8296.2891"/><polygon fill="#4362B1" points="1258,8292.2891,1268,8296.2891,1258,8300.2891,1262,8296.2891" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="1228" y="8273.7578">integer</text><polygon fill="#4362B1" points="442,8325.4219,432,8329.4219,442,8333.4219,438,8329.4219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="1257" y1="8329.4219" y2="8329.4219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="91" x="453" y="8319.8906">render_to_body</text><polygon fill="#4362B1" points="2024.5,8363.5547,2034.5,8367.5547,2024.5,8371.5547,2028.5,8367.5547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="431" x2="2030.5" y1="8367.5547" y2="8367.5547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="443" y="8358.0234">render</text><path d="M1963,8382.5547 L2042,8382.5547 L2042,8398.6875 L2032,8408.6875 L1959,8408.6875 L1959,8386.5547 A4,4 0 0 1 1963,8382.5547 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="328" x="1959" y="8382.5547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="1979" y="8400.1563">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="2062" y="8401.1563">[5 times]</text><polygon fill="#4362B1" points="2178.5,8443.9531,2188.5,8447.9531,2178.5,8451.9531,2182.5,8447.9531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="8447.9531" y2="8447.9531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="8438.4219">find_all</text><polygon fill="#4362B1" points="2047.5,8482.0859,2037.5,8486.0859,2047.5,8490.0859,2043.5,8486.0859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="8486.0859" y2="8486.0859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="8476.5547">array</text><polygon fill="#4362B1" points="792,8527.2188,782,8531.2188,792,8535.2188,788,8531.2188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="8531.2188" y2="8531.2188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="8521.6875">write</text><polygon fill="#4362B1" points="2024.5,8565.3516,2034.5,8569.3516,2024.5,8573.3516,2028.5,8569.3516" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="8569.3516" y2="8569.3516"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="8559.8203">integer</text><polygon fill="#4362B1" points="1444.5,8603.4844,1434.5,8607.4844,1444.5,8611.4844,1440.5,8607.4844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="8607.4844" y2="8607.4844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="1455.5" y="8597.9531">gravatar_for</text><polygon fill="#4362B1" points="2024.5,8641.6172,2034.5,8645.6172,2024.5,8649.6172,2028.5,8645.6172" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="8645.6172" y2="8645.6172"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="1440.5" y="8636.0859">object</text><polygon fill="#4362B1" points="792,8679.75,782,8683.75,792,8687.75,788,8683.75" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="8683.75" y2="8683.75"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="8674.2188">write</text><polygon fill="#4362B1" points="2024.5,8717.8828,2034.5,8721.8828,2024.5,8725.8828,2028.5,8721.8828" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="8721.8828" y2="8721.8828"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="8712.3516">integer</text><polygon fill="#4362B1" points="2524.5,8759.0156,2534.5,8763.0156,2524.5,8767.0156,2528.5,8763.0156" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2530.5" y1="8763.0156" y2="8763.0156"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="324" x="2048.5" y="8753.4844">SELECT COUNT(*) FROM "microposts" WHERE "micropost</text><path d="M2541,8738.8828 L2541,8764.8828 A4,4 0 0 0 2545,8768.8828 L2979,8768.8828 A4,4 0 0 0 2983,8764.8828 L2983,8744.8828 L2973,8734.8828 L2545,8734.8828 A4,4 0 0 0 2541,8738.8828 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2973,8734.8828 L2973,8742.8828 A2,2 0 0 0 2975,8744.8828 L2983,8744.8828 L2973,8734.8828 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="411" x="2552" y="8756.4844">SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = ?</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2078.5" y1="8804.1484" y2="8804.1484"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2078.5" x2="2078.5" y1="8804.1484" y2="8817.1484"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2037.5" x2="2078.5" y1="8817.1484" y2="8817.1484"/><polygon fill="#4362B1" points="2047.5,8813.1484,2037.5,8817.1484,2047.5,8821.1484,2043.5,8817.1484" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="2048.5" y="8794.6172">render</text><polygon fill="#4362B1" points="2178.5,8851.2813,2188.5,8855.2813,2178.5,8859.2813,2182.5,8855.2813" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="8855.2813" y2="8855.2813"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="8845.75">find_all</text><polygon fill="#4362B1" points="2047.5,8889.4141,2037.5,8893.4141,2047.5,8897.4141,2043.5,8893.4141" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="8893.4141" y2="8893.4141"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="8883.8828">array</text><polygon fill="#4362B1" points="792,8927.5469,782,8931.5469,792,8935.5469,788,8931.5469" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="8931.5469" y2="8931.5469"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="8922.0156">write</text><polygon fill="#4362B1" points="2024.5,8965.6797,2034.5,8969.6797,2024.5,8973.6797,2028.5,8969.6797" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="8969.6797" y2="8969.6797"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="8960.1484">integer</text><polygon fill="#4362B1" points="2524.5,9013.8789,2534.5,9017.8789,2524.5,9021.8789,2528.5,9017.8789" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2530.5" y1="9017.8789" y2="9017.8789"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="308" x="2048.5" y="9008.3477">SELECT COUNT(*) FROM "users" INNER JOIN "relations</text><path d="M2541,8986.6797 L2541,9026.6797 A4,4 0 0 0 2545,9030.6797 L3006,9030.6797 A4,4 0 0 0 3010,9026.6797 L3010,8992.6797 L3000,8982.6797 L2545,8982.6797 A4,4 0 0 0 2541,8986.6797 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M3000,8982.6797 L3000,8990.6797 A2,2 0 0 0 3002,8992.6797 L3010,8992.6797 L3000,8982.6797 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="438" x="2552" y="9004.2813">SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="385" x="2552" y="9018.4141">"relationships"."followed_id" WHERE "relationships"."follower_id" = ?</text><polygon fill="#4362B1" points="792,9062.0781,782,9066.0781,792,9070.0781,788,9066.0781" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="9066.0781" y2="9066.0781"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="9056.5469">write</text><polygon fill="#4362B1" points="2024.5,9100.2109,2034.5,9104.2109,2024.5,9108.2109,2028.5,9104.2109" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="9104.2109" y2="9104.2109"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="9094.6797">integer</text><polygon fill="#4362B1" points="2524.5,9148.4102,2534.5,9152.4102,2524.5,9156.4102,2528.5,9152.4102" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2530.5" y1="9152.4102" y2="9152.4102"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="308" x="2048.5" y="9142.8789">SELECT COUNT(*) FROM "users" INNER JOIN "relations</text><path d="M2541,9121.2109 L2541,9161.2109 A4,4 0 0 0 2545,9165.2109 L3006,9165.2109 A4,4 0 0 0 3010,9161.2109 L3010,9127.2109 L3000,9117.2109 L2545,9117.2109 A4,4 0 0 0 2541,9121.2109 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M3000,9117.2109 L3000,9125.2109 A2,2 0 0 0 3002,9127.2109 L3010,9127.2109 L3000,9117.2109 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="438" x="2552" y="9138.8125">SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="385" x="2552" y="9152.9453">"relationships"."follower_id" WHERE "relationships"."followed_id" = ?</text><polygon fill="#4362B1" points="792,9196.6094,782,9200.6094,792,9204.6094,788,9200.6094" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="9200.6094" y2="9200.6094"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="9191.0781">write</text><polygon fill="#4362B1" points="2024.5,9234.7422,2034.5,9238.7422,2024.5,9242.7422,2028.5,9238.7422" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="9238.7422" y2="9238.7422"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="9229.2109">integer</text><polygon fill="#4362B1" points="792,9272.875,782,9276.875,792,9280.875,788,9276.875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="9276.875" y2="9276.875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="9267.3438">write</text><polygon fill="#4362B1" points="2024.5,9311.0078,2034.5,9315.0078,2024.5,9319.0078,2028.5,9315.0078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="9315.0078" y2="9315.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="9305.4766">integer</text><polygon fill="#4362B1" points="2524.5,9359.207,2534.5,9363.207,2524.5,9367.207,2528.5,9363.207" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2530.5" y1="9363.207" y2="9363.207"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="308" x="2048.5" y="9353.6758">SELECT COUNT(*) FROM "users" INNER JOIN "relations</text><path d="M2541,9332.0078 L2541,9372.0078 A4,4 0 0 0 2545,9376.0078 L3006,9376.0078 A4,4 0 0 0 3010,9372.0078 L3010,9338.0078 L3000,9328.0078 L2545,9328.0078 A4,4 0 0 0 2541,9332.0078 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M3000,9328.0078 L3000,9336.0078 A2,2 0 0 0 3002,9338.0078 L3010,9338.0078 L3000,9328.0078 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="438" x="2552" y="9349.6094">SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="385" x="2552" y="9363.7422">"relationships"."follower_id" WHERE "relationships"."followed_id" = ?</text><polygon fill="#4362B1" points="959.5,9407.4063,949.5,9411.4063,959.5,9415.4063,955.5,9411.4063" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="953.5" x2="2035.5" y1="9411.4063" y2="9411.4063"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="970.5" y="9401.875">records</text><polygon fill="#4362B1" points="792,9445.5391,782,9449.5391,792,9453.5391,788,9449.5391" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="937.5" y1="9449.5391" y2="9449.5391"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="9440.0078">write</text><polygon fill="#4362B1" points="926.5,9483.6719,936.5,9487.6719,926.5,9491.6719,930.5,9487.6719" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="932.5" y1="9487.6719" y2="9487.6719"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="9478.1406">integer</text><polygon fill="#4362B1" points="2524.5,9538.9375,2534.5,9542.9375,2524.5,9546.9375,2528.5,9542.9375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="948.5" x2="2530.5" y1="9542.9375" y2="9542.9375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="295" x="960.5" y="9533.4063">SELECT "users".* FROM "users" INNER JOIN "relation</text><path d="M2541,9504.6719 L2541,9558.6719 A4,4 0 0 0 2545,9562.6719 L2999,9562.6719 A4,4 0 0 0 3003,9558.6719 L3003,9510.6719 L2993,9500.6719 L2545,9500.6719 A4,4 0 0 0 2541,9504.6719 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2993,9500.6719 L2993,9508.6719 A2,2 0 0 0 2995,9510.6719 L3003,9510.6719 L2993,9500.6719 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="431" x="2552" y="9522.2734">SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="428" x="2552" y="9536.4063">"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ?</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="2552" y="9550.5391">OFFSET ?</text><polygon fill="#4362B1" points="2024.5,9594.2031,2034.5,9598.2031,2024.5,9602.2031,2028.5,9598.2031" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="943.5" x2="2030.5" y1="9598.2031" y2="9598.2031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="955.5" y="9588.6719">array</text><path d="M1349,9613.2031 L1428,9613.2031 L1428,9629.3359 L1418,9639.3359 L1345,9639.3359 L1345,9617.2031 A4,4 0 0 1 1349,9613.2031 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="111.5313" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="769" x="1345" y="9613.2031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="1365" y="9630.8047">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="1448" y="9631.8047">[2 times]</text><polygon fill="#4362B1" points="1444.5,9674.6016,1434.5,9678.6016,1444.5,9682.6016,1440.5,9678.6016" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="9678.6016" y2="9678.6016"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="1455.5" y="9669.0703">gravatar_for</text><polygon fill="#4362B1" points="2024.5,9712.7344,2034.5,9716.7344,2024.5,9720.7344,2028.5,9716.7344" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="9716.7344" y2="9716.7344"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="145" x="1440.5" y="9707.2031">ActiveSupport::SafeBuffer</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2078.5" y1="9761.8672" y2="9761.8672"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2078.5" x2="2078.5" y1="9761.8672" y2="9774.8672"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2037.5" x2="2078.5" y1="9774.8672" y2="9774.8672"/><polygon fill="#4362B1" points="2047.5,9770.8672,2037.5,9774.8672,2047.5,9778.8672,2043.5,9774.8672" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="2048.5" y="9752.3359">render</text><polygon fill="#4362B1" points="959.5,9809,949.5,9813,959.5,9817,955.5,9813" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="953.5" x2="2035.5" y1="9813" y2="9813"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="970.5" y="9803.4688">records</text><polygon fill="#4362B1" points="2024.5,9847.1328,2034.5,9851.1328,2024.5,9855.1328,2028.5,9851.1328" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="943.5" x2="2030.5" y1="9851.1328" y2="9851.1328"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="955.5" y="9841.6016">array</text><polygon fill="#4362B1" points="2178.5,9885.2656,2188.5,9889.2656,2178.5,9893.2656,2182.5,9889.2656" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="9889.2656" y2="9889.2656"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="9879.7344">find_all</text><polygon fill="#4362B1" points="2047.5,9923.3984,2037.5,9927.3984,2047.5,9931.3984,2043.5,9927.3984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="9927.3984" y2="9927.3984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="9917.8672">array</text><path d="M332,9942.3984 L411,9942.3984 L411,9958.5313 L401,9968.5313 L328,9968.5313 L328,9946.3984 A4,4 0 0 1 332,9942.3984 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="480.7266" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1786" x="328" y="9942.3984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="9960">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="9961">[2 times]</text><polygon fill="#4362B1" points="1444.5,10003.7969,1434.5,10007.7969,1444.5,10011.7969,1440.5,10007.7969" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="10007.7969" y2="10007.7969"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="1455.5" y="9998.2656">gravatar_for</text><polygon fill="#4362B1" points="2024.5,10041.9297,2034.5,10045.9297,2024.5,10049.9297,2028.5,10045.9297" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="10045.9297" y2="10045.9297"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="145" x="1440.5" y="10036.3984">ActiveSupport::SafeBuffer</text><polygon fill="#4362B1" points="1444.5,10080.0625,1434.5,10084.0625,1444.5,10088.0625,1440.5,10084.0625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="10084.0625" y2="10084.0625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="72" x="1455.5" y="10074.5313">current_user</text><polygon fill="#4362B1" points="447,10118.1953,437,10122.1953,447,10126.1953,443,10122.1953" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="441" x2="1422.5" y1="10122.1953" y2="10122.1953"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="458" y="10112.6641">[]</text><polygon fill="#4362B1" points="1411.5,10156.3281,1421.5,10160.3281,1411.5,10164.3281,1415.5,10160.3281" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1417.5" y1="10160.3281" y2="10160.3281"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="443" y="10150.7969">integer</text><polygon fill="#4362B1" points="2024.5,10194.4609,2034.5,10198.4609,2024.5,10202.4609,2028.5,10198.4609" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="10198.4609" y2="10198.4609"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1440.5" y="10188.9297">User</text><polygon fill="#4362B1" points="1439.5,10232.5938,1429.5,10236.5938,1439.5,10240.5938,1435.5,10236.5938" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1433.5" x2="2035.5" y1="10236.5938" y2="10236.5938"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="77" x="1450.5" y="10227.0625">current_user?</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1428.5" x2="1475.5" y1="10269.7266" y2="10269.7266"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1475.5" x2="1475.5" y1="10269.7266" y2="10282.7266"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1434.5" x2="1475.5" y1="10282.7266" y2="10282.7266"/><polygon fill="#4362B1" points="1444.5,10278.7266,1434.5,10282.7266,1444.5,10286.7266,1440.5,10282.7266" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="72" x="1445.5" y="10260.1953">current_user</text><polygon fill="#4362B1" points="447,10321.8594,437,10325.8594,447,10329.8594,443,10325.8594" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="441" x2="1422.5" y1="10325.8594" y2="10325.8594"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="458" y="10316.3281">[]</text><polygon fill="#4362B1" points="1411.5,10359.9922,1421.5,10363.9922,1411.5,10367.9922,1415.5,10363.9922" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1417.5" y1="10363.9922" y2="10363.9922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="443" y="10354.4609">integer</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1433.5" y1="10407.125" y2="10407.125"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1391.5" y1="10407.125" y2="10420.125"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1391.5" x2="1438.5" y1="10420.125" y2="10420.125"/><polygon fill="#4362B1" points="1418.5,10416.125,1428.5,10420.125,1418.5,10424.125,1422.5,10420.125" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1402.5" y="10397.5938">User</text><polygon fill="#4362B1" points="792,10456.2578,782,10460.2578,792,10464.2578,788,10460.2578" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="10460.2578" y2="10460.2578"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="10450.7266">write</text><polygon fill="#4362B1" points="2024.5,10494.3906,2034.5,10498.3906,2024.5,10502.3906,2028.5,10498.3906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="10498.3906" y2="10498.3906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="10488.8594">integer</text><polygon fill="#4362B1" points="1444.5,10532.5234,1434.5,10536.5234,1444.5,10540.5234,1440.5,10536.5234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="10536.5234" y2="10536.5234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="44" x="1455.5" y="10526.9922">full_title</text><polygon fill="#4362B1" points="2024.5,10570.6563,2034.5,10574.6563,2024.5,10578.6563,2028.5,10574.6563" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="10574.6563" y2="10574.6563"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="145" x="1440.5" y="10565.125">ActiveSupport::SafeBuffer</text><polygon fill="#4362B1" points="2350,10608.7891,2360,10612.7891,2350,10616.7891,2354,10612.7891" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2356" y1="10612.7891" y2="10612.7891"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="129" x="2048.5" y="10603.2578">unmarshaled_deflated</text><polygon fill="#4362B1" points="1122,10646.9219,1112,10650.9219,1122,10654.9219,1118,10650.9219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1116" x2="2361" y1="10650.9219" y2="10650.9219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="25" x="1133" y="10641.3906">load</text><polygon fill="#4362B1" points="2350,10685.0547,2360,10689.0547,2350,10693.0547,2354,10689.0547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1106" x2="2356" y1="10689.0547" y2="10689.0547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="1118" y="10679.5234">array</text><polygon fill="#4362B1" points="2047.5,10723.1875,2037.5,10727.1875,2047.5,10731.1875,2043.5,10727.1875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2366" y1="10727.1875" y2="10727.1875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="10717.6563">array</text><polygon fill="#4362B1" points="792,10761.3203,782,10765.3203,792,10769.3203,788,10765.3203" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="10765.3203" y2="10765.3203"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="10755.7891">write</text><polygon fill="#4362B1" points="2024.5,10799.4531,2034.5,10803.4531,2024.5,10807.4531,2028.5,10803.4531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="10803.4531" y2="10803.4531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="10793.9219">integer</text><polygon fill="#4362B1" points="1911,10837.5859,1901,10841.5859,1911,10845.5859,1907,10841.5859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1905" x2="2035.5" y1="10841.5859" y2="10841.5859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="33" x="1922" y="10832.0547">parse</text><polygon fill="#4362B1" points="2024.5,10875.7188,2034.5,10879.7188,2024.5,10883.7188,2028.5,10879.7188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1895" x2="2030.5" y1="10879.7188" y2="10879.7188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="1907" y="10870.1875">object</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2078.5" y1="10917.8516" y2="10917.8516"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2078.5" x2="2078.5" y1="10917.8516" y2="10930.8516"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2037.5" x2="2078.5" y1="10930.8516" y2="10930.8516"/><polygon fill="#4362B1" points="2047.5,10926.8516,2037.5,10930.8516,2047.5,10934.8516,2043.5,10930.8516" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="2048.5" y="10908.3203">render</text><polygon fill="#4362B1" points="2178.5,10964.9844,2188.5,10968.9844,2178.5,10972.9844,2182.5,10968.9844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="10968.9844" y2="10968.9844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="10959.4531">find_all</text><polygon fill="#4362B1" points="2047.5,11003.1172,2037.5,11007.1172,2047.5,11011.1172,2043.5,11007.1172" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="11007.1172" y2="11007.1172"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="10997.5859">array</text><polygon fill="#4362B1" points="792,11041.25,782,11045.25,792,11049.25,788,11045.25" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="11045.25" y2="11045.25"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="11035.7188">write</text><polygon fill="#4362B1" points="2024.5,11079.3828,2034.5,11083.3828,2024.5,11087.3828,2028.5,11083.3828" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="11083.3828" y2="11083.3828"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="11073.8516">integer</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2078.5" y1="11121.5156" y2="11121.5156"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2078.5" x2="2078.5" y1="11121.5156" y2="11134.5156"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2037.5" x2="2078.5" y1="11134.5156" y2="11134.5156"/><polygon fill="#4362B1" points="2047.5,11130.5156,2037.5,11134.5156,2047.5,11138.5156,2043.5,11134.5156" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="2048.5" y="11111.9844">render</text><polygon fill="#4362B1" points="2178.5,11168.6484,2188.5,11172.6484,2178.5,11176.6484,2182.5,11172.6484" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="11172.6484" y2="11172.6484"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="11163.1172">find_all</text><polygon fill="#4362B1" points="2047.5,11206.7813,2037.5,11210.7813,2047.5,11214.7813,2043.5,11210.7813" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="11210.7813" y2="11210.7813"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="11201.25">array</text><polygon fill="#4362B1" points="1444.5,11244.9141,1434.5,11248.9141,1444.5,11252.9141,1440.5,11248.9141" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="11248.9141" y2="11248.9141"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="1455.5" y="11239.3828">logged_in?</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1433.5" x2="1480.5" y1="11282.0469" y2="11282.0469"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1480.5" x2="1480.5" y1="11282.0469" y2="11295.0469"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1439.5" x2="1480.5" y1="11295.0469" y2="11295.0469"/><polygon fill="#4362B1" points="1449.5,11291.0469,1439.5,11295.0469,1449.5,11299.0469,1445.5,11295.0469" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="72" x="1450.5" y="11272.5156">current_user</text><polygon fill="#4362B1" points="447,11334.1797,437,11338.1797,447,11342.1797,443,11338.1797" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="441" x2="1427.5" y1="11338.1797" y2="11338.1797"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="458" y="11328.6484">[]</text><polygon fill="#4362B1" points="1416.5,11372.3125,1426.5,11376.3125,1416.5,11380.3125,1420.5,11376.3125" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1422.5" y1="11376.3125" y2="11376.3125"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="443" y="11366.7813">integer</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1438.5" y1="11419.4453" y2="11419.4453"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1396.5" y1="11419.4453" y2="11432.4453"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1396.5" x2="1443.5" y1="11432.4453" y2="11432.4453"/><polygon fill="#4362B1" points="1423.5,11428.4453,1433.5,11432.4453,1423.5,11436.4453,1427.5,11432.4453" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1407.5" y="11409.9141">User</text><polygon fill="#4362B1" points="2024.5,11461.5781,2034.5,11465.5781,2024.5,11469.5781,2028.5,11465.5781" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="11465.5781" y2="11465.5781"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="46" x="1440.5" y="11456.0469">boolean</text><path d="M332,11480.5781 L411,11480.5781 L411,11496.7109 L401,11506.7109 L328,11506.7109 L328,11484.5781 A4,4 0 0 1 332,11480.5781 " fill="#4362B1" style="stroke:#4362B1;stroke-width:1.5;"/><rect fill="none" height="187.7969" rx="4" ry="4" style="stroke:#4362B1;stroke-width:1.5;" width="1786" x="328" y="11480.5781"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="28" x="348" y="11498.1797">loop</text><text fill="#4362B1" font-family=""Verdana"" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="55" x="431" y="11499.1797">[2 times]</text><polygon fill="#4362B1" points="1444.5,11541.9766,1434.5,11545.9766,1444.5,11549.9766,1440.5,11545.9766" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1438.5" x2="2035.5" y1="11545.9766" y2="11545.9766"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="72" x="1455.5" y="11536.4453">current_user</text><polygon fill="#4362B1" points="447,11580.1094,437,11584.1094,447,11588.1094,443,11584.1094" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="441" x2="1422.5" y1="11584.1094" y2="11584.1094"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="458" y="11574.5781">[]</text><polygon fill="#4362B1" points="1411.5,11618.2422,1421.5,11622.2422,1411.5,11626.2422,1415.5,11622.2422" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1417.5" y1="11622.2422" y2="11622.2422"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="443" y="11612.7109">integer</text><polygon fill="#4362B1" points="2024.5,11656.375,2034.5,11660.375,2024.5,11664.375,2028.5,11660.375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1428.5" x2="2030.5" y1="11660.375" y2="11660.375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="26" x="1440.5" y="11650.8438">User</text><polygon fill="#4362B1" points="792,11701.5078,782,11705.5078,792,11709.5078,788,11705.5078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="11705.5078" y2="11705.5078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="11695.9766">write</text><polygon fill="#4362B1" points="2024.5,11739.6406,2034.5,11743.6406,2024.5,11747.6406,2028.5,11743.6406" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="11743.6406" y2="11743.6406"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="11734.1094">integer</text><polygon fill="#4362B1" points="442,11777.7734,432,11781.7734,442,11785.7734,438,11781.7734" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="436" x2="2035.5" y1="11781.7734" y2="11781.7734"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="8" x="453" y="11772.2422">[]</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2078.5" y1="11819.9063" y2="11819.9063"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2078.5" x2="2078.5" y1="11819.9063" y2="11832.9063"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2037.5" x2="2078.5" y1="11832.9063" y2="11832.9063"/><polygon fill="#4362B1" points="2047.5,11828.9063,2037.5,11832.9063,2047.5,11836.9063,2043.5,11832.9063" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="39" x="2048.5" y="11810.375">render</text><polygon fill="#4362B1" points="2178.5,11867.0391,2188.5,11871.0391,2178.5,11875.0391,2182.5,11871.0391" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="2036.5" x2="2184.5" y1="11871.0391" y2="11871.0391"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="2048.5" y="11861.5078">find_all</text><polygon fill="#4362B1" points="2047.5,11905.1719,2037.5,11909.1719,2047.5,11913.1719,2043.5,11909.1719" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="2041.5" x2="2194.5" y1="11909.1719" y2="11909.1719"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="2058.5" y="11899.6406">array</text><polygon fill="#4362B1" points="792,11943.3047,782,11947.3047,792,11951.3047,788,11947.3047" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="786" x2="2035.5" y1="11947.3047" y2="11947.3047"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="803" y="11937.7734">write</text><polygon fill="#4362B1" points="2024.5,11981.4375,2034.5,11985.4375,2024.5,11989.4375,2028.5,11985.4375" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="776" x2="2030.5" y1="11985.4375" y2="11985.4375"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="788" y="11975.9063">integer</text><polygon fill="#4362B1" points="1246,12019.5703,1256,12023.5703,1246,12027.5703,1250,12023.5703" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="426" x2="1252" y1="12023.5703" y2="12023.5703"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="143" x="438" y="12014.0391">ActionView::OutputBuffer</text><polygon fill="#4362B1" points="437,12057.7031,427,12061.7031,437,12065.7031,433,12061.7031" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="1262" y1="12061.7031" y2="12061.7031"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="143" x="448" y="12052.1719">ActionView::OutputBuffer</text><polygon fill="#4362B1" points="588,12095.8359,598,12099.8359,588,12103.8359,592,12099.8359" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="594" y1="12099.8359" y2="12099.8359"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="438" y="12090.3047">invoke_after</text><polygon fill="#4362B1" points="437,12133.9688,427,12137.9688,437,12141.9688,433,12137.9688" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="604" y1="12137.9688" y2="12137.9688"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="448" y="12128.4375">array</text><polygon fill="#4362B1" points="759,12172.1016,769,12176.1016,759,12180.1016,763,12176.1016" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="426" x2="765" y1="12176.1016" y2="12176.1016"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="438" y="12166.5703">write</text><polygon fill="#4362B1" points="437,12210.2344,427,12214.2344,437,12218.2344,433,12214.2344" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="431" x2="775" y1="12214.2344" y2="12214.2344"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="448" y="12204.7031">integer</text><polygon fill="#4362B1" points="197,12248.3672,187,12252.3672,197,12256.3672,193,12252.3672" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="191" x2="420" y1="12252.3672" y2="12252.3672"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="36" x="208" y="12242.8359">object</text><polygon fill="#4362B1" points="11,12286.5,1,12290.5,11,12294.5,7,12290.5" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="180" y1="12290.5" y2="12290.5"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="22" y="12280.9688">200</text><polygon fill="#4362B1" points="1878,12324.6328,1888,12328.6328,1878,12332.6328,1882,12328.6328" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="1884" y1="12328.6328" y2="12328.6328"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="12" y="12319.1016">generate</text><polygon fill="#4362B1" points="11,12362.7656,1,12366.7656,11,12370.7656,7,12366.7656" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="1894" y1="12366.7656" y2="12366.7656"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="12357.2344">string</text><polygon fill="#4362B1" points="588,12400.8984,598,12404.8984,588,12408.8984,592,12404.8984" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="12404.8984" y2="12404.8984"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="100" x="12" y="12395.3672">encrypt_and_sign</text><polygon fill="#4362B1" points="1730,12439.0313,1740,12443.0313,1730,12447.0313,1734,12443.0313" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="12443.0313" y2="12443.0313"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="43" x="622" y="12433.5">encrypt</text><polygon fill="#4362B1" points="621,12477.1641,611,12481.1641,621,12485.1641,617,12481.1641" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="12481.1641" y2="12481.1641"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="95" x="632" y="12471.6328">OpenSSL::Cipher</text><polygon fill="#4362B1" points="1730,12515.2969,1740,12519.2969,1730,12523.2969,1734,12519.2969" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="12519.2969" y2="12519.2969"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="622" y="12509.7656">key=</text><polygon fill="#4362B1" points="621,12553.4297,611,12557.4297,621,12561.4297,617,12557.4297" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="12557.4297" y2="12557.4297"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="12547.8984">string</text><polygon fill="#4362B1" points="1730,12591.5625,1740,12595.5625,1730,12599.5625,1734,12595.5625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="12595.5625" y2="12595.5625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="60" x="622" y="12586.0313">random_iv</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="12628.6953" y2="12628.6953"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="12628.6953" y2="12641.6953"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="12641.6953" y2="12641.6953"/><polygon fill="#4362B1" points="1768,12637.6953,1758,12641.6953,1768,12645.6953,1764,12641.6953" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" text-decoration="underline" textLength="82" x="1769" y="12619.1641">random_bytes</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="12689.8281" y2="12689.8281"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="12689.8281" y2="12702.8281"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="12702.8281" y2="12702.8281"/><polygon fill="#4362B1" points="1742,12698.8281,1752,12702.8281,1742,12706.8281,1746,12702.8281" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="12680.2969">string</text><line style="stroke:#4362B1;stroke-width:3.0;" x1="1752" x2="1799" y1="12730.9609" y2="12730.9609"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1799" x2="1799" y1="12730.9609" y2="12743.9609"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="1758" x2="1799" y1="12743.9609" y2="12743.9609"/><polygon fill="#4362B1" points="1768,12739.9609,1758,12743.9609,1768,12747.9609,1764,12743.9609" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="19" x="1769" y="12721.4297">iv=</text><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1757" y1="12792.0938" y2="12792.0938"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1715" y1="12792.0938" y2="12805.0938"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="1715" x2="1762" y1="12805.0938" y2="12805.0938"/><polygon fill="#4362B1" points="1742,12801.0938,1752,12805.0938,1742,12809.0938,1746,12805.0938" style="stroke:#4362B1;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="1720" y="12782.5625">string</text><polygon fill="#4362B1" points="621,12834.2266,611,12838.2266,621,12842.2266,617,12838.2266" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="12838.2266" y2="12838.2266"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="12828.6953">string</text><polygon fill="#4362B1" points="1730,12872.3594,1740,12876.3594,1730,12880.3594,1734,12876.3594" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="12876.3594" y2="12876.3594"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="67" x="622" y="12866.8281">auth_data=</text><polygon fill="#4362B1" points="621,12910.4922,611,12914.4922,621,12918.4922,617,12914.4922" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="12914.4922" y2="12914.4922"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="12904.9609">string</text><polygon fill="#4362B1" points="1878,12948.625,1888,12952.625,1878,12956.625,1882,12952.625" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1884" y1="12952.625" y2="12952.625"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="51" x="622" y="12943.0938">generate</text><polygon fill="#4362B1" points="621,12986.7578,611,12990.7578,621,12994.7578,617,12990.7578" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1894" y1="12990.7578" y2="12990.7578"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="12981.2266">string</text><polygon fill="#4362B1" points="1730,13024.8906,1740,13028.8906,1730,13032.8906,1734,13028.8906" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="13028.8906" y2="13028.8906"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="41" x="622" y="13019.3594">update</text><polygon fill="#4362B1" points="621,13063.0234,611,13067.0234,621,13071.0234,617,13067.0234" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="13067.0234" y2="13067.0234"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="13057.4922">string</text><polygon fill="#4362B1" points="1730,13101.1563,1740,13105.1563,1730,13109.1563,1734,13105.1563" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="610" x2="1736" y1="13105.1563" y2="13105.1563"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="24" x="622" y="13095.625">final</text><polygon fill="#4362B1" points="621,13139.2891,611,13143.2891,621,13147.2891,617,13143.2891" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="615" x2="1746" y1="13143.2891" y2="13143.2891"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="632" y="13133.7578">string</text><polygon fill="#4362B1" points="11,13177.4219,1,13181.4219,11,13185.4219,7,13181.4219" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="13181.4219" y2="13181.4219"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="13171.8906">string</text><polygon fill="#4362B1" points="404,13215.5547,414,13219.5547,404,13223.5547,408,13219.5547" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="410" y1="13219.5547" y2="13219.5547"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="18" x="12" y="13210.0234">[]=</text><polygon fill="#4362B1" points="11,13253.6875,1,13257.6875,11,13261.6875,7,13257.6875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="420" y1="13257.6875" y2="13257.6875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="32" x="22" y="13248.1563">string</text><polygon fill="#4362B1" points="588,13291.8203,598,13295.8203,588,13299.8203,592,13295.8203" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="13295.8203" y2="13295.8203"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="13286.2891">invoke_before</text><polygon fill="#4362B1" points="11,13329.9531,1,13333.9531,11,13337.9531,7,13333.9531" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="13333.9531" y2="13333.9531"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="13324.4219">array</text><polygon fill="#4362B1" points="588,13368.0859,598,13372.0859,588,13376.0859,592,13372.0859" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="13372.0859" y2="13372.0859"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="13362.5547">invoke_after</text><polygon fill="#4362B1" points="11,13406.2188,1,13410.2188,11,13414.2188,7,13410.2188" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="13410.2188" y2="13410.2188"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="13400.6875">array</text><polygon fill="#4362B1" points="759,13444.3516,769,13448.3516,759,13452.3516,763,13448.3516" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="13448.3516" y2="13448.3516"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="13438.8203">write</text><polygon fill="#4362B1" points="11,13482.4844,1,13486.4844,11,13490.4844,7,13486.4844" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="13486.4844" y2="13486.4844"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="13476.9531">integer</text><polygon fill="#4362B1" points="2524.5,13530.6836,2534.5,13534.6836,2524.5,13538.6836,2528.5,13534.6836" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="2530.5" y1="13534.6836" y2="13534.6836"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="303" x="12" y="13525.1523">SELECT 1 AS one FROM "users" INNER JOIN "relations</text><path d="M2541,13503.4844 L2541,13543.4844 A4,4 0 0 0 2545,13547.4844 L3001,13547.4844 A4,4 0 0 0 3005,13543.4844 L3005,13509.4844 L2995,13499.4844 L2545,13499.4844 A4,4 0 0 0 2541,13503.4844 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2995,13499.4844 L2995,13507.4844 A2,2 0 0 0 2997,13509.4844 L3005,13509.4844 L2995,13499.4844 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="433" x="2552" y="13521.0859">SELECT 1 AS one FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="428" x="2552" y="13535.2188">"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ?</text><polygon fill="#4362B1" points="759,13578.8828,769,13582.8828,759,13586.8828,763,13582.8828" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="13582.8828" y2="13582.8828"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="13573.3516">write</text><polygon fill="#4362B1" points="11,13617.0156,1,13621.0156,11,13625.0156,7,13621.0156" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="13621.0156" y2="13621.0156"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="13611.4844">integer</text><polygon fill="#4362B1" points="2524.5,13665.2148,2534.5,13669.2148,2524.5,13673.2148,2528.5,13669.2148" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="2530.5" y1="13669.2148" y2="13669.2148"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="308" x="12" y="13659.6836">SELECT COUNT(*) FROM "users" INNER JOIN "relations</text><path d="M2541,13638.0156 L2541,13678.0156 A4,4 0 0 0 2545,13682.0156 L3006,13682.0156 A4,4 0 0 0 3010,13678.0156 L3010,13644.0156 L3000,13634.0156 L2545,13634.0156 A4,4 0 0 0 2541,13638.0156 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M3000,13634.0156 L3000,13642.0156 A2,2 0 0 0 3002,13644.0156 L3010,13644.0156 L3000,13634.0156 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="438" x="2552" y="13655.6172">SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="385" x="2552" y="13669.75">"relationships"."follower_id" WHERE "relationships"."followed_id" = ?</text><polygon fill="#4362B1" points="759,13713.4141,769,13717.4141,759,13721.4141,763,13717.4141" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="13717.4141" y2="13717.4141"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="13707.8828">write</text><polygon fill="#4362B1" points="11,13751.5469,1,13755.5469,11,13759.5469,7,13755.5469" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="13755.5469" y2="13755.5469"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="13746.0156">integer</text><polygon fill="#4362B1" points="2524.5,13799.7461,2534.5,13803.7461,2524.5,13807.7461,2528.5,13803.7461" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="2530.5" y1="13803.7461" y2="13803.7461"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="295" x="12" y="13794.2148">SELECT "users".* FROM "users" INNER JOIN "relation</text><path d="M2541,13772.5469 L2541,13812.5469 A4,4 0 0 0 2545,13816.5469 L2999,13816.5469 A4,4 0 0 0 3003,13812.5469 L3003,13778.5469 L2993,13768.5469 L2545,13768.5469 A4,4 0 0 0 2541,13772.5469 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><path d="M2993,13768.5469 L2993,13776.5469 A2,2 0 0 0 2995,13778.5469 L3003,13778.5469 L2993,13768.5469 " fill="#4362B1" style="stroke:#181818;stroke-width:1.0;"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="431" x="2552" y="13790.1484">SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" =</text><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="385" x="2552" y="13804.2813">"relationships"."follower_id" WHERE "relationships"."followed_id" = ?</text><polygon fill="#4362B1" points="593,13847.9453,603,13851.9453,593,13855.9453,597,13851.9453" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="599" y1="13851.9453" y2="13851.9453"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="13842.4141">invoke_before</text><polygon fill="#4362B1" points="588,13886.0781,598,13890.0781,588,13894.0781,592,13890.0781" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="13890.0781" y2="13890.0781"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="13880.5469">invoke_after</text><polygon fill="#4362B1" points="11,13924.2109,1,13928.2109,11,13932.2109,7,13928.2109" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="13928.2109" y2="13928.2109"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="13918.6797">array</text><polygon fill="#4362B1" points="759,13962.3438,769,13966.3438,759,13970.3438,763,13966.3438" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="765" y1="13966.3438" y2="13966.3438"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="28" x="12" y="13956.8125">write</text><polygon fill="#4362B1" points="11,14000.4766,1,14004.4766,11,14008.4766,7,14004.4766" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="775" y1="14004.4766" y2="14004.4766"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="40" x="22" y="13994.9453">integer</text><polygon fill="#4362B1" points="2524.5,14038.6094,2534.5,14042.6094,2524.5,14046.6094,2528.5,14042.6094" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="2530.5" y1="14042.6094" y2="14042.6094"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="113" x="12" y="14033.0781">rollback transaction</text><polygon fill="#4362B1" points="593,14076.7422,603,14080.7422,593,14084.7422,597,14080.7422" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="599" y1="14080.7422" y2="14080.7422"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="81" x="12" y="14071.2109">invoke_before</text><polygon fill="#4362B1" points="588,14114.875,598,14118.875,588,14122.875,592,14118.875" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;" x1="0" x2="594" y1="14118.875" y2="14118.875"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="70" x="12" y="14109.3438">invoke_after</text><polygon fill="#4362B1" points="11,14153.0078,1,14157.0078,11,14161.0078,7,14157.0078" style="stroke:#4362B1;stroke-width:1.0;"/><line style="stroke:#4362B1;stroke-width:3.0;stroke-dasharray:2.0,2.0;" x1="5" x2="604" y1="14157.0078" y2="14157.0078"/><text fill="#FFFFFF" font-family=""Verdana"" font-size="12" lengthAdjust="spacing" textLength="30" x="22" y="14147.4766">array</text><!--MD5=[6ac53f2edc86eed2ad214e87b538383f] | |
@startuml | |
!includeurl https://raw.githubusercontent.com/getappmap/plantuml-theme/main/appmap-theme.puml | |
participant HTTP_server_requests as "HTTP server requests" | |
participant actionpack as "actionpack" | |
participant activesupport as "activesupport" | |
participant logger as "logger" | |
participant activerecord as "activerecord" | |
participant ruby as "ruby" | |
participant controllers as "controllers" | |
participant helpers as "helpers" | |
participant models as "models" | |
participant openssl as "openssl" | |
participant json as "json" | |
participant views as "views" | |
participant actionview as "actionview" | |
participant sprockets as "sprockets" | |
participant Database as "Database" | |
[->actionpack: before_setup | |
activate actionpack | |
actionpack->activesupport: invoke_before | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
actionpack->Database: begin transaction | |
Loop 3 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->activesupport: invoke_after | |
[<- -actionpack: boolean | |
deactivate actionpack | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<- -activerecord: array | |
deactivate activerecord | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<- -activerecord: array | |
deactivate activerecord | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<- -ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->HTTP_server_requests: POST /login | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<- -actionpack: object | |
deactivate actionpack | |
actionpack->actionpack: [] | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->controllers: create | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<- -logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."email | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT ? | |
End note | |
controllers->actionpack: [] | |
controllers->actionpack: destroy | |
activate actionpack | |
actionpack->actionpack: clear | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<- -ruby: array | |
deactivate ruby | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<- -ruby: array | |
deactivate ruby | |
controllers<- -actionpack: boolean | |
deactivate actionpack | |
controllers->helpers: log_in | |
activate helpers | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
controllers<- -helpers: integer | |
deactivate helpers | |
controllers->helpers: remember | |
activate helpers | |
helpers->models: remember | |
activate models | |
models->models: <u>new_remember_token</u> | |
activate models | |
models<- -models: string | |
deactivate models | |
models->models: <u>digest</u> | |
activate models | |
models->openssl: <u>random_bytes</u> | |
activate openssl | |
models<- -openssl: string | |
deactivate openssl | |
models<- -models: object | |
deactivate models | |
Loop 3 times | |
models->activesupport: invoke_before | |
End | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: SAVEPOINT active_record_1 | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: UPDATE "users" SET "remember_digest" = ?, "updated | |
Note right | |
UPDATE "users" SET "remember_digest" = ?, "updated_at" = ? WHERE "users"."id" = | |
? | |
End note | |
Loop 3 times | |
models->activesupport: invoke_after | |
activate activesupport | |
models<- -activesupport: array | |
deactivate activesupport | |
End | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: RELEASE SAVEPOINT active_record_1 | |
helpers<- -models: boolean | |
deactivate models | |
helpers->json: generate | |
activate json | |
helpers<- -json: string | |
deactivate json | |
helpers->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: object | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
helpers<- -activesupport: string | |
deactivate activesupport | |
Loop 2 times | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<- -actionpack: string | |
deactivate actionpack | |
End | |
controllers<- -helpers: string | |
deactivate helpers | |
controllers->actionpack: redirect_to | |
activate actionpack | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
controllers<- -actionpack: string | |
deactivate actionpack | |
actionpack<- -controllers: string | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
HTTP_server_requests<- -actionpack: string | |
deactivate actionpack | |
[<- -HTTP_server_requests: 302 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<- -json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
[<- -activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<- -actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<- -ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->HTTP_server_requests: GET /users/{id}/followers | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<- -actionpack: ActionDispatch::Cookies::CookieJar | |
deactivate actionpack | |
actionpack->actionpack: [] | |
activate actionpack | |
actionpack<- -actionpack: string | |
deactivate actionpack | |
Loop 3 times | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<- -ruby: string | |
deactivate ruby | |
End | |
actionpack->openssl: decrypt | |
activate openssl | |
actionpack<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
actionpack->openssl: key= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: iv= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_tag= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_data= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: update | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: final | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->json: parse | |
activate json | |
actionpack<- -json: object | |
deactivate json | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<- -ruby: string | |
deactivate ruby | |
actionpack->json: parse | |
activate json | |
actionpack<- -json: object | |
deactivate json | |
activesupport->helpers: logged_in_user | |
helpers->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers->logger: write | |
activate logger | |
helpers<- -logger: integer | |
deactivate logger | |
helpers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
helpers<- -helpers: object | |
deactivate helpers | |
helpers<- -helpers: boolean | |
deactivate helpers | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->controllers: followers | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<- -logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
controllers->controllers: page_number | |
activate controllers | |
controllers<- -controllers: integer | |
deactivate controllers | |
controllers->actionpack: render_to_body | |
activate actionpack | |
actionpack->views: <u>render</u> | |
Loop 5 times | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: object | |
deactivate helpers | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "microposts" WHERE "micropost | |
Note right | |
SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = ? | |
End note | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."followed_id" WHERE "relationships"."follower_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
OFFSET ? | |
End note | |
views<- -activerecord: array | |
deactivate activerecord | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
End | |
views->views: <u>render</u> | |
views->activerecord: records | |
activate activerecord | |
views<- -activerecord: array | |
deactivate activerecord | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
views<- -helpers: User | |
deactivate helpers | |
views->helpers: current_user? | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers<- -helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->helpers: full_title | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->sprockets: <u>unmarshaled_deflated</u> | |
activate sprockets | |
sprockets->ruby: <u>load</u> | |
activate ruby | |
sprockets<- -ruby: array | |
deactivate ruby | |
views<- -sprockets: array | |
deactivate sprockets | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->json: parse | |
activate json | |
views<- -json: object | |
deactivate json | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers<- -helpers: User | |
deactivate helpers | |
views<- -helpers: boolean | |
deactivate helpers | |
Loop 2 times | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
views<- -helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->actionpack: [] | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
controllers<- -actionpack: ActionView::OutputBuffer | |
deactivate actionpack | |
actionpack<- -controllers: ActionView::OutputBuffer | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
HTTP_server_requests<- -actionpack: object | |
deactivate actionpack | |
[<- -HTTP_server_requests: 200 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<- -json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
[<- -activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<- -actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT 1 AS one FROM "users" INNER JOIN "relations | |
Note right | |
SELECT 1 AS one FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
End note | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: rollback transaction | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
@enduml | |
@startuml | |
skinparam backgroundColor black | |
skinparam useBetaStyle false | |
skinparam defaultFontName "Verdana" | |
skinparam defaultFontSize 12 | |
skinparam shadowing false | |
skinparam roundcorner 8 | |
skinparam ParticipantPadding 40 | |
skinparam BoxPadding 40 | |
skinparam Padding 5 | |
skinparam ArrowColor #ADAFAE | |
skinparam stereotype { | |
CBackgroundColor #777777 | |
CBorderColor $SECONDARY_LIGHT | |
ABackgroundColor $SUCCESS_LIGHT | |
ABorderColor #92C233 | |
IBackgroundColor $DANGER_LIGHT | |
IBorderColor #D63333 | |
EBackgroundColor $WARNING_LIGHT | |
EBorderColor #FFA033 | |
NBackgroundColor $INFO_LIGHT | |
NBorderColor #AD5CD6 | |
} | |
skinparam swimlane { | |
BorderColor #9933CC | |
BorderThickness 2 | |
TitleBackgroundColor $SECONDARY_LIGHT-#555 | |
TitleFontColor #4362b1 | |
} | |
skinparam activity { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
BarColor #77B300 | |
StartColor #9933CC | |
EndColor #9933CC | |
DiamondBackgroundColor transparent | |
DiamondBorderColor #777777 | |
DiamondFontColor #777777 | |
} | |
skinparam participant { | |
FontColor #FFF | |
BorderColor #555 | |
BackgroundColor #555 | |
BorderThickness 1 | |
} | |
skinparam actor { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #4362b1 | |
} | |
skinparam arrow { | |
Thickness 3 | |
Color #4362b1 | |
FontColor #FFF | |
} | |
skinparam sequence { | |
BorderColor #4362b1 | |
TitleFontColor #4362b1 | |
BackgroundColor transparent | |
StartColor #4362b1 | |
EndColor #4362b1 | |
BoxBackgroundColor transparent | |
BoxBorderColor #ADAFAE | |
BoxFontColor #ADAFAE | |
DelayFontColor #ADAFAE | |
LifeLineBorderColor 999 | |
LifeLineBorderThickness 2 | |
LifeLineBackgroundColor transparent | |
GroupBorderColor #4362b1 | |
GroupFontColor #4362b1 | |
GroupHeaderFontColor #FFF | |
GroupBackgroundColor #4362b1 | |
GroupBodyBackgroundColor transparent | |
GroupHeaderBackgroundColor transparent | |
DividerBackgroundColor transparent | |
DividerBorderColor #ADAFAE | |
DividerBorderThickness 2 | |
DividerFontColor #ADAFAE | |
ReferenceBackgroundColor transparent | |
ReferenceBorderColor #ADAFAE | |
ReferenceFontColor #ADAFAE | |
ReferenceHeaderFontColor #9933CC | |
ReferenceHeaderBackgroundColor transparent | |
StereotypeFontColor #4362b1 | |
} | |
skinparam partition { | |
BorderColor #4362b1 | |
FontColor #4362b1 | |
BackgroundColor transparent | |
} | |
skinparam collections { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
} | |
skinparam control { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #4362b1 | |
} | |
skinparam entity { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #4362b1 | |
} | |
skinparam boundary { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #4362b1 | |
} | |
skinparam agent { | |
BackgroundColor transparent | |
BorderColor $WARNING_LIGHT | |
FontColor #ADAFAE | |
} | |
skinparam note { | |
BorderThickness 1 | |
BackgroundColor #4362b1 | |
BorderColor black | |
FontColor #FFF | |
} | |
skinparam artifact { | |
BackgroundColor transparent | |
BorderColor #BDBFBE | |
FontColor #BDBFBE | |
} | |
skinparam component { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #BDBFBE | |
} | |
skinparam interface { | |
BackgroundColor transparent | |
BorderColor #CC0000 | |
FontColor #ADAFAE | |
} | |
skinparam storage { | |
BackgroundColor transparent | |
BorderColor #FFA033 | |
FontColor #FF8800 | |
} | |
skinparam node { | |
BackgroundColor transparent | |
BorderColor #ADAFAE | |
FontColor #ADAFAE | |
} | |
skinparam cloud { | |
BackgroundColor transparent | |
BorderColor #F2FCFE | |
FontColor #ADAFAE | |
} | |
skinparam database { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor #4362b1 | |
} | |
skinparam class { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
FontColor $LIGHT | |
HeaderBackgroundColor $PRIMARY_LIGHT | |
StereotypeFontColor #ADAFAE | |
BorderThickness 1 | |
AttributeFontColor #ADAFAE | |
AttributeFontSize 11 | |
} | |
skinparam object { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
StereotypeFontColor #ADAFAE | |
BorderThickness 1 | |
AttributeFontColor #777777 | |
AttributeFontSize 11 | |
} | |
skinparam usecase { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
BorderThickness 2 | |
StereotypeFontColor #4362b1 | |
} | |
skinparam rectangle { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
BorderThickness 2 | |
StereotypeFontColor #4362b1 | |
} | |
skinparam package { | |
BackgroundColor transparent | |
BorderColor #4362b1 | |
FontColor #4362b1 | |
BorderThickness 2 | |
} | |
skinparam folder { | |
BackgroundColor transparent | |
BorderColor #FF8800 | |
FontColor #FF8800 | |
BorderThickness 2 | |
} | |
skinparam frame { | |
BackgroundColor transparent | |
BorderColor #9933CC | |
FontColor #9933CC | |
BorderThickness 2 | |
} | |
skinparam state { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
StartColor #9933CC | |
EndColor #9933CC | |
AttributeFontColor #777777 | |
AttributeFontSize 11 | |
} | |
skinparam queue { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
} | |
skinparam card { | |
BackgroundColor transparent | |
BorderColor #9933CC | |
FontColor #9933CC | |
} | |
skinparam file { | |
BackgroundColor transparent | |
BorderColor #555 | |
FontColor #555 | |
} | |
skinparam stack { | |
FontColor #4362b1 | |
BorderColor #55B2DE | |
BackgroundColor transparent | |
} | |
participant HTTP_server_requests as "HTTP server requests" | |
participant actionpack as "actionpack" | |
participant activesupport as "activesupport" | |
participant logger as "logger" | |
participant activerecord as "activerecord" | |
participant ruby as "ruby" | |
participant controllers as "controllers" | |
participant helpers as "helpers" | |
participant models as "models" | |
participant openssl as "openssl" | |
participant json as "json" | |
participant views as "views" | |
participant actionview as "actionview" | |
participant sprockets as "sprockets" | |
participant Database as "Database" | |
[->actionpack: before_setup | |
activate actionpack | |
actionpack->activesupport: invoke_before | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
actionpack->Database: begin transaction | |
Loop 3 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->activesupport: invoke_after | |
[<- -actionpack: boolean | |
deactivate actionpack | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<- -activerecord: array | |
deactivate activerecord | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<- -activerecord: array | |
deactivate activerecord | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<- -ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->HTTP_server_requests: POST /login | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<- -actionpack: object | |
deactivate actionpack | |
actionpack->actionpack: [] | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->controllers: create | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<- -logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."email | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT ? | |
End note | |
controllers->actionpack: [] | |
controllers->actionpack: destroy | |
activate actionpack | |
actionpack->actionpack: clear | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<- -ruby: array | |
deactivate ruby | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<- -ruby: array | |
deactivate ruby | |
controllers<- -actionpack: boolean | |
deactivate actionpack | |
controllers->helpers: log_in | |
activate helpers | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
controllers<- -helpers: integer | |
deactivate helpers | |
controllers->helpers: remember | |
activate helpers | |
helpers->models: remember | |
activate models | |
models->models: <u>new_remember_token</u> | |
activate models | |
models<- -models: string | |
deactivate models | |
models->models: <u>digest</u> | |
activate models | |
models->openssl: <u>random_bytes</u> | |
activate openssl | |
models<- -openssl: string | |
deactivate openssl | |
models<- -models: object | |
deactivate models | |
Loop 3 times | |
models->activesupport: invoke_before | |
End | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: SAVEPOINT active_record_1 | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: UPDATE "users" SET "remember_digest" = ?, "updated | |
Note right | |
UPDATE "users" SET "remember_digest" = ?, "updated_at" = ? WHERE "users"."id" = | |
? | |
End note | |
Loop 3 times | |
models->activesupport: invoke_after | |
activate activesupport | |
models<- -activesupport: array | |
deactivate activesupport | |
End | |
models->logger: write | |
activate logger | |
models<- -logger: integer | |
deactivate logger | |
models->Database: RELEASE SAVEPOINT active_record_1 | |
helpers<- -models: boolean | |
deactivate models | |
helpers->json: generate | |
activate json | |
helpers<- -json: string | |
deactivate json | |
helpers->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: object | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
helpers<- -activesupport: string | |
deactivate activesupport | |
Loop 2 times | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<- -actionpack: string | |
deactivate actionpack | |
End | |
controllers<- -helpers: string | |
deactivate helpers | |
controllers->actionpack: redirect_to | |
activate actionpack | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
controllers<- -actionpack: string | |
deactivate actionpack | |
actionpack<- -controllers: string | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
HTTP_server_requests<- -actionpack: string | |
deactivate actionpack | |
[<- -HTTP_server_requests: 302 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<- -json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
[<- -activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<- -actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<- -ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->HTTP_server_requests: GET /users/{id}/followers | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<- -actionpack: ActionDispatch::Cookies::CookieJar | |
deactivate actionpack | |
actionpack->actionpack: [] | |
activate actionpack | |
actionpack<- -actionpack: string | |
deactivate actionpack | |
Loop 3 times | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<- -ruby: string | |
deactivate ruby | |
End | |
actionpack->openssl: decrypt | |
activate openssl | |
actionpack<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
actionpack->openssl: key= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: iv= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_tag= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_data= | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: update | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->openssl: final | |
activate openssl | |
actionpack<- -openssl: string | |
deactivate openssl | |
actionpack->json: parse | |
activate json | |
actionpack<- -json: object | |
deactivate json | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<- -ruby: string | |
deactivate ruby | |
actionpack->json: parse | |
activate json | |
actionpack<- -json: object | |
deactivate json | |
activesupport->helpers: logged_in_user | |
helpers->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers->logger: write | |
activate logger | |
helpers<- -logger: integer | |
deactivate logger | |
helpers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
helpers<- -helpers: object | |
deactivate helpers | |
helpers<- -helpers: boolean | |
deactivate helpers | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->controllers: followers | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<- -logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
controllers->controllers: page_number | |
activate controllers | |
controllers<- -controllers: integer | |
deactivate controllers | |
controllers->actionpack: render_to_body | |
activate actionpack | |
actionpack->views: <u>render</u> | |
Loop 5 times | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: object | |
deactivate helpers | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "microposts" WHERE "micropost | |
Note right | |
SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = ? | |
End note | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."followed_id" WHERE "relationships"."follower_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<- -logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
OFFSET ? | |
End note | |
views<- -activerecord: array | |
deactivate activerecord | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
End | |
views->views: <u>render</u> | |
views->activerecord: records | |
activate activerecord | |
views<- -activerecord: array | |
deactivate activerecord | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
views<- -helpers: User | |
deactivate helpers | |
views->helpers: current_user? | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers<- -helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->helpers: full_title | |
activate helpers | |
views<- -helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->sprockets: <u>unmarshaled_deflated</u> | |
activate sprockets | |
sprockets->ruby: <u>load</u> | |
activate ruby | |
sprockets<- -ruby: array | |
deactivate ruby | |
views<- -sprockets: array | |
deactivate sprockets | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->json: parse | |
activate json | |
views<- -json: object | |
deactivate json | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
helpers<- -helpers: User | |
deactivate helpers | |
views<- -helpers: boolean | |
deactivate helpers | |
Loop 2 times | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<- -actionpack: integer | |
deactivate actionpack | |
views<- -helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
views->actionpack: [] | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<- -actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<- -logger: integer | |
deactivate logger | |
controllers<- -actionpack: ActionView::OutputBuffer | |
deactivate actionpack | |
actionpack<- -controllers: ActionView::OutputBuffer | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<- -activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<- -logger: integer | |
deactivate logger | |
HTTP_server_requests<- -actionpack: object | |
deactivate actionpack | |
[<- -HTTP_server_requests: 200 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<- -json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<- -openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<- -openssl: string | |
deactivate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<- -json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<- -openssl: string | |
deactivate openssl | |
[<- -activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<- -actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT 1 AS one FROM "users" INNER JOIN "relations | |
Note right | |
SELECT 1 AS one FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
End note | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<- -logger: integer | |
deactivate logger | |
[->Database: rollback transaction | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<- -activesupport: array | |
deactivate activesupport | |
@enduml | |
PlantUML version 1.2022.8(Sun Sep 25 05:00:33 EDT 2022) | |
(GPL source distribution) | |
Java Runtime: Java(TM) SE Runtime Environment | |
JVM: Java HotSpot(TM) 64-Bit Server VM | |
Default Encoding: UTF-8 | |
Language: en | |
Country: US | |
--></g></svg> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@startuml | |
!includeurl https://raw.githubusercontent.com/getappmap/plantuml-theme/main/appmap-theme.puml | |
participant HTTP_server_requests as "HTTP server requests" | |
participant actionpack as "actionpack" | |
participant activesupport as "activesupport" | |
participant logger as "logger" | |
participant activerecord as "activerecord" | |
participant ruby as "ruby" | |
participant controllers as "controllers" | |
participant helpers as "helpers" | |
participant models as "models" | |
participant openssl as "openssl" | |
participant json as "json" | |
participant views as "views" | |
participant actionview as "actionview" | |
participant sprockets as "sprockets" | |
participant Database as "Database" | |
[->actionpack: before_setup | |
activate actionpack | |
actionpack->activesupport: invoke_before | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
actionpack->Database: begin transaction | |
Loop 3 times | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->activesupport: invoke_after | |
[<--actionpack: boolean | |
deactivate actionpack | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<--logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<--activerecord: array | |
deactivate activerecord | |
[->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<--logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
[<--activerecord: array | |
deactivate activerecord | |
[->activesupport: invoke_before | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<--ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->HTTP_server_requests: POST /login | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<--actionpack: object | |
deactivate actionpack | |
actionpack->actionpack: [] | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->controllers: create | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<--logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."email | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT ? | |
End note | |
controllers->actionpack: [] | |
controllers->actionpack: destroy | |
activate actionpack | |
actionpack->actionpack: clear | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<--ruby: array | |
deactivate ruby | |
actionpack->ruby: unpack | |
activate ruby | |
actionpack<--ruby: array | |
deactivate ruby | |
controllers<--actionpack: boolean | |
deactivate actionpack | |
controllers->helpers: log_in | |
activate helpers | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
controllers<--helpers: integer | |
deactivate helpers | |
controllers->helpers: remember | |
activate helpers | |
helpers->models: remember | |
activate models | |
models->models: <u>new_remember_token</u> | |
activate models | |
models<--models: string | |
deactivate models | |
models->models: <u>digest</u> | |
activate models | |
models->openssl: <u>random_bytes</u> | |
activate openssl | |
models<--openssl: string | |
deactivate openssl | |
models<--models: object | |
deactivate models | |
Loop 3 times | |
models->activesupport: invoke_before | |
End | |
models->logger: write | |
activate logger | |
models<--logger: integer | |
deactivate logger | |
models->Database: SAVEPOINT active_record_1 | |
models->logger: write | |
activate logger | |
models<--logger: integer | |
deactivate logger | |
models->Database: UPDATE "users" SET "remember_digest" = ?, "updated | |
Note right | |
UPDATE "users" SET "remember_digest" = ?, "updated_at" = ? WHERE "users"."id" = | |
? | |
End note | |
Loop 3 times | |
models->activesupport: invoke_after | |
activate activesupport | |
models<--activesupport: array | |
deactivate activesupport | |
End | |
models->logger: write | |
activate logger | |
models<--logger: integer | |
deactivate logger | |
models->Database: RELEASE SAVEPOINT active_record_1 | |
helpers<--models: boolean | |
deactivate models | |
helpers->json: generate | |
activate json | |
helpers<--json: string | |
deactivate json | |
helpers->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<--openssl: object | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<--json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
helpers<--activesupport: string | |
deactivate activesupport | |
Loop 2 times | |
helpers->actionpack: []= | |
activate actionpack | |
helpers<--actionpack: string | |
deactivate actionpack | |
End | |
controllers<--helpers: string | |
deactivate helpers | |
controllers->actionpack: redirect_to | |
activate actionpack | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
controllers<--actionpack: string | |
deactivate actionpack | |
actionpack<--controllers: string | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
HTTP_server_requests<--actionpack: string | |
deactivate actionpack | |
[<--HTTP_server_requests: 302 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<--json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<--openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<--json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
[<--activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<--actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_before | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
[->ruby: unpack | |
activate ruby | |
[<--ruby: array | |
deactivate ruby | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->HTTP_server_requests: GET /users/{id}/followers | |
activate HTTP_server_requests | |
HTTP_server_requests->actionpack: process_action | |
activate actionpack | |
Loop 2 times | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
End | |
actionpack->activesupport: invoke_before | |
activate activesupport | |
activesupport->actionpack: [] | |
actionpack->actionpack: update | |
activate actionpack | |
actionpack<--actionpack: ActionDispatch::Cookies::CookieJar | |
deactivate actionpack | |
actionpack->actionpack: [] | |
activate actionpack | |
actionpack<--actionpack: string | |
deactivate actionpack | |
Loop 3 times | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<--ruby: string | |
deactivate ruby | |
End | |
actionpack->openssl: decrypt | |
activate openssl | |
actionpack<--openssl: OpenSSL::Cipher | |
deactivate openssl | |
actionpack->openssl: key= | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->openssl: iv= | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_tag= | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->openssl: auth_data= | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->openssl: update | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->openssl: final | |
activate openssl | |
actionpack<--openssl: string | |
deactivate openssl | |
actionpack->json: parse | |
activate json | |
actionpack<--json: object | |
deactivate json | |
actionpack->ruby: unpack1 | |
activate ruby | |
actionpack<--ruby: string | |
deactivate ruby | |
actionpack->json: parse | |
activate json | |
actionpack<--json: object | |
deactivate json | |
activesupport->helpers: logged_in_user | |
helpers->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
helpers->logger: write | |
activate logger | |
helpers<--logger: integer | |
deactivate logger | |
helpers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
helpers<--helpers: object | |
deactivate helpers | |
helpers<--helpers: boolean | |
deactivate helpers | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->controllers: followers | |
activate controllers | |
controllers->logger: write | |
activate logger | |
controllers<--logger: integer | |
deactivate logger | |
controllers->Database: SELECT "users".* FROM "users" WHERE "users"."id" = | |
Note right | |
SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? | |
End note | |
controllers->controllers: page_number | |
activate controllers | |
controllers<--controllers: integer | |
deactivate controllers | |
controllers->actionpack: render_to_body | |
activate actionpack | |
actionpack->views: <u>render</u> | |
Loop 5 times | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
End | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->helpers: gravatar_for | |
activate helpers | |
views<--helpers: object | |
deactivate helpers | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "microposts" WHERE "micropost | |
Note right | |
SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = ? | |
End note | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."followed_id" WHERE "relationships"."follower_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
views->activerecord: records | |
activate activerecord | |
activerecord->logger: write | |
activate logger | |
activerecord<--logger: integer | |
deactivate logger | |
activerecord->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
OFFSET ? | |
End note | |
views<--activerecord: array | |
deactivate activerecord | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<--helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
End | |
views->views: <u>render</u> | |
views->activerecord: records | |
activate activerecord | |
views<--activerecord: array | |
deactivate activerecord | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
Loop 2 times | |
views->helpers: gravatar_for | |
activate helpers | |
views<--helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
views<--helpers: User | |
deactivate helpers | |
views->helpers: current_user? | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
helpers<--helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->helpers: full_title | |
activate helpers | |
views<--helpers: ActiveSupport::SafeBuffer | |
deactivate helpers | |
views->sprockets: <u>unmarshaled_deflated</u> | |
activate sprockets | |
sprockets->ruby: <u>load</u> | |
activate ruby | |
sprockets<--ruby: array | |
deactivate ruby | |
views<--sprockets: array | |
deactivate sprockets | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->json: parse | |
activate json | |
views<--json: object | |
deactivate json | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
views->helpers: logged_in? | |
activate helpers | |
helpers->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
helpers<--helpers: User | |
deactivate helpers | |
views<--helpers: boolean | |
deactivate helpers | |
Loop 2 times | |
views->helpers: current_user | |
activate helpers | |
helpers->actionpack: [] | |
activate actionpack | |
helpers<--actionpack: integer | |
deactivate actionpack | |
views<--helpers: User | |
deactivate helpers | |
End | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
views->actionpack: [] | |
views->views: <u>render</u> | |
views->actionview: find_all | |
activate actionview | |
views<--actionview: array | |
deactivate actionview | |
views->logger: write | |
activate logger | |
views<--logger: integer | |
deactivate logger | |
controllers<--actionpack: ActionView::OutputBuffer | |
deactivate actionpack | |
actionpack<--controllers: ActionView::OutputBuffer | |
deactivate controllers | |
actionpack->activesupport: invoke_after | |
activate activesupport | |
actionpack<--activesupport: array | |
deactivate activesupport | |
actionpack->logger: write | |
activate logger | |
actionpack<--logger: integer | |
deactivate logger | |
HTTP_server_requests<--actionpack: object | |
deactivate actionpack | |
[<--HTTP_server_requests: 200 | |
deactivate HTTP_server_requests | |
[->json: generate | |
activate json | |
[<--json: string | |
deactivate json | |
[->activesupport: encrypt_and_sign | |
activate activesupport | |
activesupport->openssl: encrypt | |
activate openssl | |
activesupport<--openssl: OpenSSL::Cipher | |
deactivate openssl | |
activesupport->openssl: key= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: random_iv | |
activate openssl | |
openssl->openssl: <u>random_bytes</u> | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
openssl->openssl: iv= | |
activate openssl | |
openssl<--openssl: string | |
deactivate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: auth_data= | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->json: generate | |
activate json | |
activesupport<--json: string | |
deactivate json | |
activesupport->openssl: update | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
activesupport->openssl: final | |
activate openssl | |
activesupport<--openssl: string | |
deactivate openssl | |
[<--activesupport: string | |
deactivate activesupport | |
[->actionpack: []= | |
activate actionpack | |
[<--actionpack: string | |
deactivate actionpack | |
[->activesupport: invoke_before | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->activesupport: invoke_after | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->Database: SELECT 1 AS one FROM "users" INNER JOIN "relations | |
Note right | |
SELECT 1 AS one FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? LIMIT ? | |
End note | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->Database: SELECT COUNT(*) FROM "users" INNER JOIN "relations | |
Note right | |
SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->Database: SELECT "users".* FROM "users" INNER JOIN "relation | |
Note right | |
SELECT "users".* FROM "users" INNER JOIN "relationships" ON "users"."id" = | |
"relationships"."follower_id" WHERE "relationships"."followed_id" = ? | |
End note | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
[->logger: write | |
activate logger | |
[<--logger: integer | |
deactivate logger | |
[->Database: rollback transaction | |
[->activesupport: invoke_before | |
[->activesupport: invoke_after | |
activate activesupport | |
[<--activesupport: array | |
deactivate activesupport | |
@enduml |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment