Jason Volk
|
9b00c65ef6
|
ircd:Ⓜ️:events: Add additional lighter-weight event_idx iteration tools.
|
2019-04-16 16:11:23 -07:00 |
|
Jason Volk
|
d96208faaf
|
ircd:Ⓜ️:events: Add iteration tools for events in sender/origin.
|
2019-04-16 16:11:23 -07:00 |
|
Jason Volk
|
ecbdf00f22
|
ircd:Ⓜ️:dbs: Add event_type metadata column.
|
2019-04-16 16:11:23 -07:00 |
|
Jason Volk
|
8148dc6502
|
ircd:Ⓜ️:dbs: Add event_sender metadata column.
|
2019-04-16 15:04:31 -07:00 |
|
Jason Volk
|
25d153d64c
|
ircd:Ⓜ️:sync: Add an initial phase convenience; add account_data as an initial phase.
|
2019-04-16 01:32:52 -07:00 |
|
Jason Volk
|
f17e521ff8
|
ircd::ios: Objectify the asio enqueuing wrappers.
|
2019-04-16 01:32:52 -07:00 |
|
Jason Volk
|
5d04c8c607
|
ircd::net: Shortcut string creation on closed / lame sockets.
|
2019-04-15 22:47:24 -07:00 |
|
Jason Volk
|
b51d5d1461
|
ircd::net: Add TLS buffers for various stringifies.
|
2019-04-15 22:47:24 -07:00 |
|
Jason Volk
|
2b759963bd
|
modules/s_listen: Add accept flow control mechanism.
|
2019-04-15 22:47:24 -07:00 |
|
Jason Volk
|
74a28f2f10
|
ircd::net: Tweak calls to set socket non-blocking.
|
2019-04-15 22:47:24 -07:00 |
|
Jason Volk
|
92cdccf956
|
ircd::net: Add parent ssl_cipher conf items; add curve items.
|
2019-04-15 22:16:16 -07:00 |
|
Jason Volk
|
889b65a002
|
ircd::net: Additional traps / assertions.
|
2019-04-15 17:09:35 -07:00 |
|
Jason Volk
|
b56df6677e
|
ircd::server: Set SNI explicitly here rather than through fallback.
ircd::server: Detect IP literal to set the peer::remote/open_opts directly.
|
2019-04-15 17:09:32 -07:00 |
|
Jason Volk
|
7d021f9430
|
ircd::server: Rename server_name to server_version.
|
2019-04-15 15:23:44 -07:00 |
|
Jason Volk
|
9b9f44d863
|
ircd::net: Skip call to set server_name when no server_name.
|
2019-04-15 15:23:44 -07:00 |
|
Jason Volk
|
0e0d95b266
|
ircd::ctx: Fix comment error.
|
2019-04-15 14:44:58 -07:00 |
|
Jason Volk
|
7a055e22ef
|
ircd::server: Disassociate tag from request on cancel.
|
2019-04-15 11:43:53 -07:00 |
|
Jason Volk
|
f9025cebb9
|
ircd: Support read-only and write-avoid modes via conf item / command line.
|
2019-04-15 11:16:31 -07:00 |
|
Jason Volk
|
726f131cc2
|
ircd::fs::aio: Use defer to post the chaser.
|
2019-04-12 17:32:53 -07:00 |
|
Jason Volk
|
58c5ac7855
|
ircd::ios: Add asio::defer() to interface.
|
2019-04-12 16:26:34 -07:00 |
|
Jason Volk
|
8c68a24e1f
|
ircd::ctx::prof: Add cycle counter to ticker array.
|
2019-04-12 15:58:06 -07:00 |
|
Jason Volk
|
0ce0fe3890
|
ircd::server: Enable the cancel debug msg.
modules/s_fetch: Improve log level.
|
2019-04-12 14:26:10 -07:00 |
|
Jason Volk
|
15bd7282c7
|
ircd::db: Use rvalue refs here.
|
2019-04-12 09:36:53 -07:00 |
|
Jason Volk
|
14c32a2075
|
ircd::http: Support HTTP/1.0.
|
2019-04-12 08:36:17 -07:00 |
|
Jason Volk
|
34e35d97fe
|
ircd::server: Additional assertions.
|
2019-04-12 07:12:49 -07:00 |
|
Jason Volk
|
79475d2ba3
|
ircd::net: Set socket non-blocking after handshake.
|
2019-04-12 05:54:11 -07:00 |
|
Jason Volk
|
2822cd0a8a
|
ircd:Ⓜ️:fetch: Add headfill operation.
|
2019-04-12 05:09:38 -07:00 |
|
Jason Volk
|
e5b2700db3
|
ircd:Ⓜ️:v1: Allow empty user_id argument to have a fallback.
|
2019-04-12 04:45:25 -07:00 |
|
Jason Volk
|
eb33688bc1
|
ircd:Ⓜ️:fetch: Add additional interface tools; consolidate interface; cleanup/reorg.
ircd:Ⓜ️:fetch: Add backfill suite.
|
2019-04-12 04:44:26 -07:00 |
|
Jason Volk
|
7d27126f96
|
ircd:Ⓜ️:room: Add any_user() convenience.
|
2019-04-12 04:44:26 -07:00 |
|
Jason Volk
|
c14d67102a
|
ircd:Ⓜ️:fetch: Reorient interface to expose fetch::request.
|
2019-04-12 03:35:46 -07:00 |
|
Jason Volk
|
eace5e309c
|
ircd:Ⓜ️:feds: Add / upgrade backfill.
|
2019-04-12 01:53:57 -07:00 |
|
Jason Volk
|
360cc01dc8
|
ircd:Ⓜ️:feds: Migrate feds::perspective() to interface.
|
2019-04-12 00:55:16 -07:00 |
|
Jason Volk
|
302969f100
|
ircd:Ⓜ️:feds: Add namespace \brief. Reorg impl layout.
|
2019-04-12 00:33:29 -07:00 |
|
Jason Volk
|
dc93610914
|
ircd:Ⓜ️:feds: Add feds::event to interface.
|
2019-04-12 00:16:27 -07:00 |
|
Jason Volk
|
3865326d71
|
ircd::server: Add additional loghead(link, request) with more data.
|
2019-04-11 22:26:11 -07:00 |
|
Jason Volk
|
4f27526e9b
|
ircd::server: Add monotonic identity counters for peers and links.
|
2019-04-11 22:26:11 -07:00 |
|
Jason Volk
|
d38c5801c9
|
ircd::server: Add interface to iterate all requests.
|
2019-04-11 21:40:59 -07:00 |
|
Jason Volk
|
5f1f0d0d7f
|
ircd::server: Distill out functions to parse HTTP head from in/out buffers.
|
2019-04-11 21:13:42 -07:00 |
|
Jason Volk
|
9a6c5f5fe4
|
ircd::server: Don't parse from outbound buffer for canceled requests.
|
2019-04-11 20:49:29 -07:00 |
|
Jason Volk
|
eef869691a
|
ircd::client: Tap the client::dock on all dtors.
|
2019-04-11 08:53:38 -07:00 |
|
Jason Volk
|
7794a92159
|
ircd::exception: Avoid repeating the system_error message string.
|
2019-04-11 07:50:48 -07:00 |
|
Jason Volk
|
c9c171ed5b
|
ircd:Ⓜ️:feds: Refine the feds preliminary central interface.
|
2019-04-11 06:27:28 -07:00 |
|
Jason Volk
|
39ac003522
|
ircd:Ⓜ️:v1: Fallback to generating random user_id's for make_join.
|
2019-04-11 05:14:44 -07:00 |
|
Jason Volk
|
6d15db176d
|
ircd::net: Fix mislabeled ios::descriptor.
|
2019-04-10 22:59:23 -07:00 |
|
Jason Volk
|
74778bd024
|
ircd::ios: Add a queued handler counter to stats.
|
2019-04-10 22:54:13 -07:00 |
|
Jason Volk
|
1d45f0bc5b
|
ircd::net: Remove this prefetch.
|
2019-04-10 22:35:11 -07:00 |
|
Jason Volk
|
be18a1874d
|
ircd::db: Increase file size target default.
|
2019-04-10 22:32:06 -07:00 |
|
Jason Volk
|
562651aa7d
|
ircd:Ⓜ️:fetch: Add fetch+eval workers; start central interface; various.
|
2019-04-10 22:32:06 -07:00 |
|
Jason Volk
|
3a57cc8c94
|
ircd::db::port: Allow icf on impl defs.
|
2019-04-10 22:32:06 -07:00 |
|
Jason Volk
|
446964bb67
|
ircd::server: Apply stack protected canary on key frames.
|
2019-04-10 22:32:06 -07:00 |
|
Jason Volk
|
0b51a10a44
|
ircd::fs::aio: Count io_submit() 'stalls' in stats.
|
2019-04-10 20:18:51 -07:00 |
|
Jason Volk
|
ba46e8c005
|
ircd::fs::aio: Move for_each_completed() to central interface; add additional utils.
|
2019-04-10 20:18:51 -07:00 |
|
Jason Volk
|
4f4019a2a0
|
ircd:Ⓜ️ Add id::USER case to room_id().
|
2019-04-10 20:18:50 -07:00 |
|
Jason Volk
|
ce9a9e58b4
|
ircd::fs: Switch to syscall_usage_warning for io_submit and fsync et al.
|
2019-04-10 20:18:50 -07:00 |
|
Jason Volk
|
d8bf5b9fff
|
ircd::ctx: Add a syscall_usage_warning to suite.
|
2019-04-10 20:18:50 -07:00 |
|
Jason Volk
|
96ff7022d0
|
ircd::prof: Add a coarse enable conf item.
|
2019-04-10 01:29:25 -07:00 |
|
Jason Volk
|
06e7b16ed5
|
ircd::mods: Stub internal dlsym() hooker.
|
2019-04-09 21:27:45 -07:00 |
|
Jason Volk
|
a1863ba3b2
|
ircd::fs: Minor cleanup.
|
2019-04-09 21:08:15 -07:00 |
|
Jason Volk
|
5c558f98b6
|
ircd: Remove the initfirst linker request option.
|
2019-04-09 21:08:15 -07:00 |
|
Jason Volk
|
5c359f22f3
|
ircd::net::socket: Change behavior of non-blocking read_() calls to not throw for EAGAIN.
|
2019-04-09 21:08:15 -07:00 |
|
Jason Volk
|
3a9e85c294
|
ircd::net::addrs: Tweak interface detail; workaround issues.
|
2019-04-09 20:05:48 -07:00 |
|
Jason Volk
|
f268d6e29a
|
ircd::fs::aio: Fix argument initialization.
|
2019-04-09 19:00:24 -07:00 |
|
Jason Volk
|
a8b536e420
|
modules/client/sync: Improve phased initial sync by bursting full room list at phase 0.
|
2019-04-08 04:43:23 -07:00 |
|
Jason Volk
|
a82410009e
|
ircd:Ⓜ️:sync: Introduce phased polylogarithmic initial sync.
|
2019-04-08 02:46:49 -07:00 |
|
Jason Volk
|
a780609b76
|
ircd:Ⓜ️:sync: Add opts to sync::item.
|
2019-04-08 01:53:09 -07:00 |
|
Jason Volk
|
d08bd0b336
|
ircd:Ⓜ️:vm: Remove unused fault codes.
|
2019-04-07 20:57:43 -07:00 |
|
Jason Volk
|
5782f2a5f5
|
modules/m_rooms: Update module linkage of rooms::for_each().
|
2019-04-07 20:15:31 -07:00 |
|
Jason Volk
|
6ff3c88fa4
|
ircd::fs: Add a wait() interface.
|
2019-04-07 17:59:52 -07:00 |
|
Jason Volk
|
3bed48011d
|
ircd::fs: Add non-blocking option passed to fd ctor's open(2) fwiw.
|
2019-04-07 16:45:35 -07:00 |
|
Jason Volk
|
9994836db0
|
ircd::fs: Add and use dedicated log facility for ircd::fs.
|
2019-04-07 16:28:21 -07:00 |
|
Jason Volk
|
e752273462
|
ircd::prof: Add an rusage based profile object.
|
2019-04-07 15:34:39 -07:00 |
|
Jason Volk
|
ab6cf110d5
|
ircd::prof: Make sample_t constructions consistent for all prof objects.
|
2019-04-07 15:33:36 -07:00 |
|
Jason Volk
|
6ae6624772
|
ircd:Ⓜ️ Add room object equality operator suite.
|
2019-04-07 14:50:27 -07:00 |
|
Jason Volk
|
8a8dbea623
|
ircd:Ⓜ️ Update linkage for m::visible interface.
|
2019-04-06 18:35:01 -07:00 |
|
Jason Volk
|
5384bd8609
|
ircd:Ⓜ️:dbs: Minor fix typo.
|
2019-04-06 18:17:54 -07:00 |
|
Jason Volk
|
989b3f0cc3
|
ircd::rfc1035: Use proper platform byte swapping.
|
2019-04-06 17:12:01 -07:00 |
|
Jason Volk
|
d1966fffb5
|
ircd::prof: Add more timing calls with better resolution.
|
2019-04-06 14:18:08 -07:00 |
|
Jason Volk
|
161502452a
|
ircd::fs::aio: Improve stability of completion ring iteration.
|
2019-04-06 13:52:22 -07:00 |
|
Jason Volk
|
d118a0e743
|
ircd::fs: Add enumerated op codes to identify request types.
|
2019-04-06 12:13:16 -07:00 |
|
Jason Volk
|
c3b9e2fca4
|
ircd::fs::aio: Reduce nr of modulo for completion ring iteration.
|
2019-04-05 18:12:23 -07:00 |
|
Jason Volk
|
9d8fe82126
|
ircd::prof: Add x-platform cputime reporting alternative interface.
|
2019-04-05 18:12:23 -07:00 |
|
Jason Volk
|
e29ebb0b98
|
ircd::info: Query sysconf value for CLK_TCK.
|
2019-04-05 18:12:23 -07:00 |
|
Jason Volk
|
3a68b65fe8
|
ircd::ctx: Optimize with no_stack_unwind attribute since it's done by us.
|
2019-04-05 18:12:23 -07:00 |
|
Jason Volk
|
c3480f9f79
|
ircd: Rename various matrix loggers; increase log name width.
|
2019-04-05 18:12:22 -07:00 |
|
Jason Volk
|
ecf8465d36
|
ircd::log: Change some widths into consts; various reorg.
|
2019-04-05 14:38:50 -07:00 |
|
Jason Volk
|
5a26cbb65c
|
ircd::mods: Fix error code case for module load errors; split demangler function.
|
2019-04-03 21:05:39 -07:00 |
|
Jason Volk
|
f289bc5095
|
ircd: Additional system_error translation utils.
|
2019-04-03 21:05:39 -07:00 |
|
Jason Volk
|
8e1dc9f453
|
ircd::prof: Develop profiling system; implement non-hardware counters.
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
5e7661ba78
|
ircd::info: Tweaks for additional CPU identification.
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
ff4afc0efc
|
ircd::fmt: Add support for padding; add alignment and padding to additional handlers.
fixes #54
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
a1419ca78b
|
ircd::fmt: Add alignment rules to hex lowercase specifier handler.
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
63c850b123
|
ircd: Rename perf:: to prof::.
|
2019-04-03 15:51:42 -07:00 |
|
Jason Volk
|
091ee437c0
|
ircd:Ⓜ️:sync: Fix missing exception reporting on linear handle caller.
|
2019-04-02 09:47:35 -07:00 |
|
Jason Volk
|
6af9d35edc
|
ircd::info: Fix platform condition; string length.
|
2019-04-01 02:04:52 -07:00 |
|
Jason Volk
|
f7dc5f6146
|
ircd::fs: Add fd fdno ctor.
|
2019-03-31 23:57:35 -07:00 |
|
Jason Volk
|
dab225113d
|
ircd::resource: Handle and generate an OPTIONS response.
fixes #65
|
2019-03-31 23:08:29 -07:00 |
|
Jason Volk
|
7434a06ec6
|
ircd::resource: Add conditional method list generator.
|
2019-03-31 19:15:45 -07:00 |
|
Jason Volk
|
c75d602d69
|
ircd::http: Fix case comparisons for header strings in header tool.
|
2019-03-31 19:00:38 -07:00 |
|
Jason Volk
|
af08458f8d
|
ircd::resource: Stub default/builtin method handlers for OPTIONS and HEAD.
|
2019-03-31 18:51:59 -07:00 |
|
Jason Volk
|
ae936d8e55
|
ircd::resource: Improve method already-registered error msg.
|
2019-03-31 18:38:24 -07:00 |
|
Jason Volk
|
403bf52867
|
ircd::perf: Start a perf profiling subsystem; move ctx::prof counter utils.
|
2019-03-31 18:16:18 -07:00 |
|
Jason Volk
|
9e61cf7bc0
|
ircd::info: Query cpuid features on init.
|
2019-03-31 17:04:02 -07:00 |
|
Jason Volk
|
04959d946c
|
ircd:Ⓜ️:state: Reduce for_each stack.
|
2019-03-31 15:12:38 -07:00 |
|
Jason Volk
|
19c58ca23e
|
ircd:Ⓜ️:filter: Add convenience filter::get() taking a direct query string value.
|
2019-03-31 14:41:04 -07:00 |
|
Jason Volk
|
6644161140
|
ircd:Ⓜ️ Add state_filter w/ related m::name strings.
|
2019-03-31 14:03:21 -07:00 |
|
Jason Volk
|
57119f2367
|
ircd::fs::aio: Minor cleanup.
|
2019-03-31 13:24:42 -07:00 |
|
Jason Volk
|
4eba0fcd6f
|
modules/client/directory/room: Remove old alias caching and fetching; reroute central interfaces.
|
2019-03-30 19:02:11 -07:00 |
|
Jason Volk
|
9c2b215d60
|
ircd:Ⓜ️:room::aliases::cache: Add remote fetching; improve interface.
|
2019-03-30 19:02:11 -07:00 |
|
Jason Volk
|
8063904c06
|
ircd:Ⓜ️:room::aliases: Add preliminary aliases cache replacement interface.
|
2019-03-30 19:02:11 -07:00 |
|
Jason Volk
|
d17ac6a8bb
|
ircd:Ⓜ️🆔 Add id part-swapping interface.
|
2019-03-30 18:15:07 -07:00 |
|
Jason Volk
|
276ba9941d
|
modules/m_room_aliases: Move for_each impl to module.
|
2019-03-30 18:15:07 -07:00 |
|
Jason Volk
|
317fa612fb
|
ircd:Ⓜ️:room: Add aliases interface.
|
2019-03-30 18:15:07 -07:00 |
|
Jason Volk
|
128fdfa8a3
|
ircd::json::stack: Improve active checkpoint invalidation related.
|
2019-03-30 14:58:34 -07:00 |
|
Jason Volk
|
9b2de5f4fc
|
ircd::json::stack: Add conditional exception rollback toggle.
|
2019-03-30 14:35:48 -07:00 |
|
Jason Volk
|
f7fa89b061
|
ircd::json::stack: Alter checkpoint rollback() behavior to proactive.
|
2019-03-30 14:13:34 -07:00 |
|
Jason Volk
|
a9a6adf28d
|
ircd::json::stack: Add checkpoint ctor option for initial commitment state.
|
2019-03-30 14:09:47 -07:00 |
|
Jason Volk
|
9f534dea17
|
ircd::fs::aio: Add iteration tool for kernel completion queue.
|
2019-03-30 14:09:47 -07:00 |
|
Jason Volk
|
db58b07ddc
|
ircd::ios: Ensure current handle pointer is nulled on fault exit point as well.
|
2019-03-30 13:11:55 -07:00 |
|
Jason Volk
|
0ffb6d6c8e
|
ircd::fs::aio: Improve interface with kernel context structure.
|
2019-03-30 13:11:39 -07:00 |
|
Jason Volk
|
672bb6f10c
|
ircd::ctx: Fix detach-mode deallocation points.
|
2019-03-30 13:08:04 -07:00 |
|
Jason Volk
|
b6732b5fdf
|
ircd::fs::aio: Optimize integer sizes of various stats.
|
2019-03-30 13:02:03 -07:00 |
|
Jason Volk
|
76138dbebd
|
ircd::fs::aio: Remove unused errbuf.
|
2019-03-29 21:46:03 -07:00 |
|
Jason Volk
|
ee5e31e0bf
|
ircd::json: Use strict type analysis for value constructions.
|
2019-03-28 21:50:08 -07:00 |
|
Jason Volk
|
f6f73e87cb
|
ircd::json: Add strict check overload to type() suite.
|
2019-03-28 21:01:56 -07:00 |
|
Jason Volk
|
4480c136ee
|
ircd::ios: Add summation for stats w/ console totals.
|
2019-03-28 17:22:52 -07:00 |
|
Jason Volk
|
289aca0c4a
|
ircd::ios: Move descriptor stats into structure.
|
2019-03-28 17:16:39 -07:00 |
|
Jason Volk
|
79065f805b
|
ircd::ios: Add hook for is_continuation; minor reorg.
|
2019-03-28 16:56:55 -07:00 |
|
Jason Volk
|
f340e44692
|
ircd:Ⓜ️:vm: Add event_id and share sequence to the loghead; minor cleanup.
|
2019-03-28 16:08:45 -07:00 |
|
Jason Volk
|
4b816f8c74
|
ircd::json::stack: Warning when flushing under a checkpoint.
|
2019-03-28 15:49:48 -07:00 |
|
Jason Volk
|
840b3c4b0c
|
ircd::json::stack: Add method to check for pending eptr.
|
2019-03-28 15:49:48 -07:00 |
|
Jason Volk
|
8523aea56a
|
ircd:Ⓜ️:dbs: Log various issues during reference indexing; minor cleanup.
|
2019-03-28 15:36:26 -07:00 |
|
Jason Volk
|
f15769ea0e
|
modules: Add .well-known handler to serve the m::self::servername string for now.
|
2019-03-28 13:13:35 -07:00 |
|
Jason Volk
|
d47518a102
|
ircd:Ⓜ️:self: Add the servername string to this section; update README.
|
2019-03-28 13:08:40 -07:00 |
|
Jason Volk
|
6dc50292e8
|
ircd::fs: Simplify these ifdef conditions.
|
2019-03-27 19:07:11 -07:00 |
|
Jason Volk
|
1c5b7d2d71
|
ircd:Ⓜ️:room::auth: Add central interface for chain fetch/eval.
|
2019-03-27 13:44:33 -07:00 |
|
Jason Volk
|
b73bb789b2
|
ircd::db: Fix runlevel condition for background task invocation.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
ccf17d648c
|
ircd::db: Add debug message for pool->wait() on bgcancel().
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
334484c4bc
|
ircd::fs::aio: Add custom allocator at descriptor site for the sigfd operation.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
3225c1fdfe
|
ircd::ios: Add interface for user allocation closure at descriptor site.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
02f413c834
|
ircd::ios: Track current handler like ctx::current.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
1e900217ee
|
ircd::fs::aio: Move ring struct into system::.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
55241c5309
|
ircd::ctx: Expand the reference cycle counting interface.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
20d0ea70c2
|
ircd::ios: Add tsc counters to hook state.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
28063823dd
|
ircd::ctx: Inline rdtsc().
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
d37129ac03
|
ircd::ios: Add allocation hooks.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
d2546120ee
|
ircd: Add descriptor participation for all asynchronous operations.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
d5397c599f
|
ircd::ios: Add asio handler hook framework.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
3bc716e0f5
|
ircd::ctx: Assert ctx doesn't finish with uncaught exceptions.
|
2019-03-27 13:04:12 -07:00 |
|
Jason Volk
|
6fbd29b1ed
|
ircd::ctx: Add context::WAIT_JOIN feature flag.
|
2019-03-27 13:04:12 -07:00 |
|