Commit Graph

17274 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
10f7c5f066
Merge #11135: Update developer notes with RPC response guidelines
62ecce75e [doc] Add RPC response notes (João Barbosa)

Pull request description:

Tree-SHA512: 795969813eefab47ac03050bd70762fc36d86edb00bdfe1ba76837a810370d61dc88749c51153bd3949eb3885f084b4ba8736b4bbf90dfef65e3fe1939304bd8
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
c9dbb1325b
Merge #11143: Fix include path for bitcoin-config.h
5abb93f0e Fix include path for bitcoin-config.h in crypto/common.h (danra)

Pull request description:

  All the other files in the repo which include bitcoin-config.h do so with the appropriate subfolder prefixed: config/bitcoin-config.h
  The header should be included with the appropriate subfolder here as well.

Tree-SHA512: abda23a9cf251553f90afe0ee1866de46ed579471f4139737239a4f9334ca817d985deac6336740898718775d1264c0b80cb348668b10a9cae970895f2de37b8
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
806849470b
Merge #11164: Fix boost headers included as user instead of system headers
5ac072caa Fix boost headers included as user instead of system headers (Dan Raviv)

Pull request description:

  In most of the project, boost headers are included as system headers.
  Fix the few inconsistent places where they aren't.

Tree-SHA512: 280af33a7bdc9d68a15b729fa88e1e7627e20a054b8d52a12cc5350c1ac9e9c90fb09f0aa97a00960969f75bcf3403dc52b834c94448b814efa63bfaf3b82663
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
e14eb40b50
Merge #11236: Add note on translations to CONTRIBUTING.md
87fe21f81 Add translation note to CONTRIBUTING.md (MeshCollider)

Pull request description:

  The readme mentions it but there is no note in contributing.md, so this just adds a note there as suggested by https://github.com/bitcoin/bitcoin/pull/11235#issuecomment-327110644

Tree-SHA512: 915afd7d38e06ca771084d1e7a931bf230961003dc1657165e6a3b8b55893427f76a4e6846993c351bda2ed4da2c9ab4b9634390cbc4391479f39b6b7556bca8

Update CONTRIBUTING.md

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>
2020-01-01 22:31:14 -06:00
MarcoFalke
c30597daed
Merge #10701: Remove the virtual specifier for functions with the override specifier
1bcd44223 Remove the virtual specifier for functions with the override specifier (practicalswift)

Pull request description:

  Remove the `virtual` specifier for functions with the `override` specifier.

  `override` implies that the function is virtual (in addition - of course - to guaranteeing that the function is overriding a virtual function from a base class).

Tree-SHA512: 2e83e1b3651f55f8f2645282114ab087ad3a0be8826f26ee5c2064d0952f677290b97261398c1d524ec7f87bbbfdbeefc141180f6099c8bbfa4c59a14f7fa755
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
3954aa4f9f
Merge #11144: Move local include to before system includes
eefc2f3 Move local include to before system includes (danra)

Pull request description:

  Prevents accidental missing includes and hidden dependencies in the local file.

Tree-SHA512: 466b9dd53c596980fdbcccf1dfd8f34eb7ec5b32323ccb635e5705efcedc81af8fbe155ac57b9a2fc5c1f516489e940d1762b3508ded1fb54e187219bb9f75e6
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
f659cc97ac
Merge #11161: Remove redundant explicitly defined copy ctors
b426e24 Remove redundant explicitly defined copy ctors (Dan Raviv)

Pull request description:

  CFeeRate and CTxMemPoolEntry have explicitly defined copy ctors which has the same functionality as the implicit default copy ctors which would have been generated otherwise.

  Besides being redundant, it violates the rule of three (see https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming) ).
  (Of course, the rule of three doesn't -really- cause a resource management issue here, but the reason for that is exactly that there is no need for an explicit copy ctor in the first place since no resources are being managed).

Tree-SHA512: c9294ebf5d955d230b44c6f0d20822975d44a34471a717d656f8b17181bcd2827f47ba897edf5accd650f5998c58aadc8ab3c91a3f556f1f6de36830ed4069ce
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
5f42ab3858
Merge #11138: Compat: Simplify bswap_16 implementation
e40fa98 Simplify bswap_16 implementation (danra)

Pull request description:

  Simplify bswap_16 implementation on platforms which don't already have it defined.
  This has no effect on the generated assembly; it just simplifies the source code.

Tree-SHA512: 1c6ac1d187a2751da75256d12b6b890160d15246dd2c2b6a56748ec43482e3a5a3323be2910f07b42d3dc243a568c7412c26eaa036efec764436e988abd1c3f1
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
ba2ed60c34
Merge #11169: [GUI] Make tabs toolbar no longer have a context menu
e254830 Make tabs toolbar no longer have a context menu (Andrew Chow)

Pull request description:

  Adds a contextMenuPolicy of Qt::PreventContextMenu to prevent the tabs toolbar from showing a context menu that allows it to be hidden.

  Fixes #11168

Tree-SHA512: 8900b3c1a891ead3c9a20dc365b436fa75f97dbe0dfa7e20ee26fd9d09f3fee6eda286b0c075ed89fe1361608ecbdd87c744e37d97a3fba62493a86dedda867b
2020-01-01 22:31:14 -06:00
MarcoFalke
eb0de04d62
Merge #11160: Improve versionbits_computeblockversion test code consistency
946638d0a Improve versionbits_computeblockversion test code consistency (danra)

Pull request description:

  In this test, `nTime` is used for all the calls to `Mine()`, each time being set to the correct time beforehand, except for in the last few calls to `Mine()` where `nStartTime` is used directly, even though `nTime` is still set to `nStartTime` beforehand. `nTime` just remains unused for these last few calls to `Mine()`.

  Changed the last few calls to `Mine()` to use `nTime` instead, improving consistency. This also fixes an unused value static analyzer warning about `nTime` being set to a value which is never used.

Tree-SHA512: f17cf1d29fd7097d53c0135d6357ee50943bd81b5ce0be785a37b85d34b5127cd6cc17ef844b519e19c33f2d96f7ababee643b9fba7afb031f444b2cfaeedbfd
2020-01-01 22:31:14 -06:00
MarcoFalke
0486e5796f
Merge #11155: Trivial: Documentation fixes for CVectorWriter ctors
37c4362f2 Trivial: Documentation fixes for CVectorWriter ctors (danra)

Pull request description:

Tree-SHA512: 13aef27f6b38dc276db6616d13e243a5413acf3a3ece5a52578c07b97a5bc9da337e7e230fcdb91727ec88b199844fd9aa3a88e7d96c911c119c91070a892ba1
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
101ee66073
Merge #11151: Fix header guards using reserved identifiers
bc70ab5 Fix header guards using reserved identifiers (Dan Raviv)

Pull request description:

  Identifiers beginning with an underscore followed immediately by an uppercase letter are reserved.

Tree-SHA512: 32b45e0aef6f6325bc3cbdea399532437490b753621149374df27e1c1eed6739ad1a09ae368e888cab8d01fb757f1b190c45a0854d2861de39a9296f17e29d9e
2020-01-01 22:31:14 -06:00
MarcoFalke
d33ee8b1cd
Merge #11112: [developer-notes] By default, declare single-argument constructors "explicit"
f1708ef89 Add recommendation: By default, declare single-argument constructors `explicit` (practicalswift)

Pull request description:

  This is a follow-up to the now merged #10969.

  Add recommendation:

  > By default, declare single-argument constructors `explicit`.
  >
  > - *Rationale*: This is a precaution to avoid unintended conversions that might arise when single-argument constructors are used as implicit conversion functions.
  >

Tree-SHA512: 1ceb1008a7863ebd0f09ba9c06b4e28b3b03265d7381f9d0c8bd4be1663d5d0392de0ecd811027aa27c0d962723674b245b3c165a437942a776f3525db39d36b
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
e58fed348f
Merge #10679: Document the non-DER-conformance of one test in tx_valid.json.
ecb11f5 Document the non-strict-DER-conformance of one test in tx_valid.json. (Andreas Schildbach)

Tree-SHA512: 4d5ba4645fbfe8fe3f1baaa5f1a1152cdd2cbf3d901f38d8e7fbd56b16caa6a8a17f2a48c74fb725ce454dd1c870b81b2238e89d0639fcd4eee858554726e996
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
1273fc2795
Merge #11007: wallet: Fix potential memory leak when loading a corrupted wallet file
c06755f wallet: Fix memory leak when loading a corrupted wallet file (practicalswift)

Pull request description:

  Fix potential memory leak when loading a corrupted wallet file.

Tree-SHA512: 4b836e4ee1fe4267213bb126af0c1174f964ff015fbe28d0a7e679eab877c275769906b3c08f885763958f6a9b559e1b5e6c7bff1df340bf2dfa2acd57500818
2020-01-01 22:31:14 -06:00
Wladimir J. van der Laan
7253eb2829
Merge #11058: Comments: More comments on functions/globals in standard.h.
360b464 Comments: More comments on functions/globals in standard.h. (Jim Posen)

Pull request description:

  I was confused about what "data carrier" meant, so I wanted to comment the `fAcceptDatacarrier` and `nMaxDatacarrierBytes` fields specifically. Then I figured I'd add docs for the rest of the functions.

Tree-SHA512: e6d0cfe6f4a2ab52ae76f984b1f5d8de371ae938e7832be8b02517d868f1caea62fec8888c917a2bd3d8ef74025de7f00dc96923fa56436dc6b190626652bf29

remove witness

Signed-off-by: Pasta <pasta@dashboost.org>
2020-01-01 22:31:11 -06:00
Wladimir J. van der Laan
6095fcc653
Merge #11026: Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default
4aa2508 Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default (Luke Dashjr)

Pull request description:

  Fixes a bug introduced in #8855

  `-acceptnonstdtxn` is a valid option only for testnet/regtest (in Core), and the help message reflects that. Currently, however, it is buggy in two ways:

  1. It uses mainnet to get the default value, which doesn't make sense since the option is never available for mainnet, and the only time the option is available, is when the default is the opposite.
  2. It uses the value of "require standard" directly as the default for "accept non-standard transactions", but these concepts are opposites: a negation must be performed to transform one to the other.

  Note the combination of these bugs results in the correct boolean output, but the logic to get there is completely wrong.

Tree-SHA512: 06ce513f59ba31f7ab4b6422a08a17bb37a5652dea4c38a4bbefedd5e2752d17bfccc32a4b0508068fa4783e316bff00a821ef18a24b1a2bb02859995d188fdc
2020-01-01 21:34:22 -06:00
Wladimir J. van der Laan
7654c786b6
Merge #11094: Docs: Hash in ZMQ hash is raw bytes, not hex
06a3aec Docs: Hash in ZMQ hash is raw bytes, not hex (Karel Bílek)

Pull request description:

  Transaction hex cannot be in hexadecimal, that would be 64 bytes. In reality it's just raw bytes.

Tree-SHA512: 0f884c73a370be1fe39a1354e2b7ef02d4ff27348dbb8d35a77bbd309f417024959589b28a560b2c9e2713074b90534771fe8c29ff8c0ee1999966997a4827a0
2020-01-01 21:34:00 -06:00
Wladimir J. van der Laan
9d58c98753
Merge #11066: Document the preference of nullptr over NULL or (void*)0
bea8e9e Document the preference of nullptr over NULL or (void*)0 (practicalswift)

Pull request description:

  Document the preference of `nullptr` over `NULL` or `(void*)0`.

  After this commit:

  ```
  $ git grep "[^A-Za-z_]NULL[^A-Za-z_]" | grep -vE '(leveldb|univalue|secp256k1|torcontrol|NULL certificates|ctaes|release-notes|patches|configure.ac|developer-notes)'
  $
  ```

  Some context:
  * `NULL → nullptr` was handled in the recently merged PR #10483
  * `0 → nullptr` was handled in the recently merged PR #10645

Tree-SHA512: f863096aa4eb21705910f89713ca9cc0d83c6df2147e3d3530c3e1589b96f6c68de8755dcf37d8ce99ebda3cfb69805e00eab13bf65424aaf16170e9dda3958a
2020-01-01 21:33:31 -06:00
Wladimir J. van der Laan
95e494983c
Merge #10878: Docs: Fix Markdown formatting issues in init.md
d201e40 Update init.md: Fix section numbering. (Carl Dong)
72a184a Update init.md: Fix line breaks in section 3b. (Carl Dong)

Pull request description:

  Trivial commit that fixes Markdown line breaks in `docs/init.md`. Markdown line breaks take the form of two spaces, which is hard to spot when viewing raw text but visible when previewing on GitHub. Line 72-73 of `docs/init.md` did not conform to the rest the rest of the documentation, and is corrected in this PR.

Tree-SHA512: e5f048bd4e9e1e68372c95881f68b157a3c205d4dbcc6ccd24f2c0171b84d8cf7907d1835c6754ce57f35f9463820353ad7ae70c2e3de20136382ea3ee8bc4ff
2020-01-01 21:33:12 -06:00
Wladimir J. van der Laan
16b1585d50
Merge #11071: Use static_assert(…, …) (C++11) instead of assert(…) where appropriate
d1e6f91 Prefer compile-time checking over run-time checking (practicalswift)

Pull request description:

  Use `static_assert(…, …)` instead of `assert(…)` where appropriate.

Tree-SHA512: 63b6e50916bcef2195a73f93476bd69657ed9a8eea0bc4382933f478a6df639632c23c076df401fea648142adcb308bb2e6be35cc3dabca30daf7649b790f436
2020-01-01 21:32:57 -06:00
MarcoFalke
972a0498e7
Merge #11011: [Trivial] Add a comment on the use of prevector in script.
08f71c29e [Trivial] Add a comment on the use of prevector in script. (Gregory Maxwell)

Pull request description:

Tree-SHA512: 020981516e67e576685eb9a8532178fb97d1780af409fc86d869cd05c293c0c823c26e838cf544d18610f5a3f479ce3e47d2ccb95fb1c4e55fe9e7ceb354f20b
2020-01-01 21:31:48 -06:00
MarcoFalke
c9b20f027f
Merge #10956: Fix typos
9d5e98ff8 Fix typos. (practicalswift)

Pull request description:

  Fix some typos not covered by #10705.

Tree-SHA512: f06e9541f6ae13ef5d6731399b61795997b21a8816abeb1749c93e99a5c47354e6cbd4a3d145f4dc6ef8a13db179799a3121ecbb7288abf3e8d81cdf81500d37
2020-01-01 21:31:39 -06:00
MarcoFalke
1ba944c55e
Merge #10705: Trivial: spelling fixes
f42fc1d50 doc: spelling fixes (klemens)

Pull request description:

  patch contains some spelling fixes ( just in comments ) as found by a bot ( http://www.misfix.org, https://github.com/ka7/misspell_fixer ).

Tree-SHA512: ba6046cfcd81b0783420daae7d776be92dd7b85a593e212f8f1b4403aca9b1b6af12cef7080d4ea5ed4a14952fd25e4300109a59c414e08f5395cdb9947bb750
2020-01-01 21:31:29 -06:00
Wladimir J. van der Laan
cca4376fbd
Merge #10917: developer-notes: add reference to snake_case and PascalCase
4a7a4ff developer-notes: add reference to snake_case and PascalCase (Marko Bencun)

Pull request description:

  CamelCase is ambiguous as it refers to both lowerCamelCase and
  UpperCamelCase, whereas PascalCase is only UpperCamelCase.

Tree-SHA512: 8eebc42931f10ed8fd314c6b8a2a936aa18fce358a50bb8ae580404fb06a97b8fece12c0398170a9a8ddce250d1e79ece3774cf8a36ac604d67b2797b54aa005
2020-01-01 21:30:52 -06:00
Wladimir J. van der Laan
191a6d9431
Merge #10461: Update style guide
47d8441 Update style guide (Pieter Wuille)

Tree-SHA512: 0b11365f294eeda1ea5c45cf04b3f38435602f61edc0c605e067ed9d17d17c28e9f1dd76bd4fa8a630e9cec8c5103cd2bfe5f6097196761d576913d9180f2ecf
2020-01-01 21:30:34 -06:00
Wladimir J. van der Laan
1972089df1
Merge #11008: Enable disablesafemode by default.
f4c3d2c Enable disablesafemode by default. (Gregory Maxwell)

Pull request description:

  Safemode is almost useless as is-- it only triggers in limited
   cases most of which aren't even concerning. There have been
   several proposals to remove it. But as a simpler, safer, and
   more flexible first case, simply deactivate it by default.

  Anyone who wants it can re-enable and know what they've signed up for.

Tree-SHA512: f5409a3e81514c32db8eb27c7563ef85e25e56e5fc2a59eac2c30b10ec54087d982c1d3b702bedf9f3133c1f272f23805582a0f468350ba18d8b5a02bedd6401
2020-01-01 21:29:47 -06:00
-k
7f8b8b31e4 Backport osslsigncode 2.0 - bitcoin#16669 and bitcoin#17671 (#3258)
* build: use osslsigncode 2.0 in gitian

The original osslsigncode project (https://sourceforge.net/projects/osslsigncode/) has been marked as abandonware,
"This is now - and has been for a long while - abandonware. Feel free to create your own forks etc.".

However, a fork at https://github.com/mtrojnar/osslsigncode has emerged that has incorporated
theuni's patches, updated the tool to work with OpenSSL 1.1 and made other improvements.

This commit switches the windows signer descriptor to use this new version of osslsigncode.

* Fixed wget call in gitian-build.py

Co-authored-by: Michael <fanquake@gmail.com>
Co-authored-by: willyk <k.o.willy@gmail.com>
2020-01-01 17:15:08 +03:00
Alexander Block
a8e7133c65 Don't disconnect masternode connections when we have less then the desired amount of outbound nodes (#3255) 2020-01-01 17:13:14 +03:00
UdjinM6
c1ac9c47c5
Sync mempool from other nodes on start (#3251)
* Sync mempool from other nodes on start

* Add `-syncmempool` cmd-line option to be able to disable mempool sync if needed

* Only sync mempool with outbound peers

Co-authored-by: Alexander Block <ablock84@gmail.com>
2020-01-01 17:13:04 +03:00
UdjinM6
b56bebc57b
Push islock invs when syncing mempool (#3250)
* Push islock invs when syncing mempool

* Send islock invs right away instead of stacking them for later
2020-01-01 17:12:41 +03:00
UdjinM6
c82e433913
Streamline, refactor and unify PS checks for mixing entries and final txes (#3246)
* Move PS mixing entry verification on masternodes into `AddEntry()`

Also streamline logic a bit and drop unused/excessive parts.

* Unify PS checks among masternodes and clients

* No need to re-check outputs over and over again

* No need to count, fail early if any output is missing

* No need to look any further once we found the input we expected

A tx with duplicate inputs would be considered invalid anyway and we also know there are no duplicates because we just verified the final tx above.

Also drop an unused variable.

* Unify LogPrint-s

* Drop human-readable strings for unused PoolMessage-s

* Apply suggestions from code review

Co-Authored-By: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

* Re-introduce zero-fee checks

* fix log

* Move all txin/txout verification logic shared by CPrivateSendClientSession::SignFinalTransaction() and CPrivateSendServer::AddEntry() into CPrivateSendBaseSession::IsValidInOuts()

* fix nit

* Add missing return

* Use CCoinsViewMemPool instead of doing it manually

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: Alexander Block <ablock84@gmail.com>
2020-01-01 17:12:25 +03:00
Alexander Block
5ce1ee9035 Fix params.size() check in "protx list wallet" RPC (#3259)
This should have been "> 4" as otherwise it bails out when the height is
specified.
2020-01-01 17:02:56 +03:00
PastaPastaPasta
2afdc8c6f6 Add basic PrivateSend RPC Tests (#3254)
* add ps test

Signed-off-by: Pasta <pasta@dashboost.org>

* remove unused import

Signed-off-by: Pasta <pasta@dashboost.org>
2019-12-31 17:22:43 +03:00
PastaPastaPasta
2d080d4060 move privatesend rpc methods from rpc/masternode.cpp to new rpc/privatesend.cpp (#3253)
* move privatesend rpc methods from masternode.cpp to new privatesend.cpp

Signed-off-by: Pasta <pasta@dashboost.org>

* add ifdef ENABLE_WALLET check for wallet.h import

Signed-off-by: Pasta <pasta@dashboost.org>

* actually register privatesend rpc

Signed-off-by: Pasta <pasta@dashboost.org>

* add dropped help text and change some weird spacing below

Signed-off-by: Pasta <pasta@dashboost.org>
2019-12-31 17:22:17 +03:00
Alexander Block
957ffa259c Fix pull request detection in .gitlab-ci.yml (#3256)
* Fix pull request detection on Gitlab CI

* Fix CI_COMMIT_BEFORE_SHA
2019-12-31 13:02:03 +03:00
UdjinM6
d2c85b9ea1
Skip mnsync restrictions for whitelisted and manually added nodes (#3249) 2019-12-31 13:01:48 +03:00
UdjinM6
8b0bb9c0e3
Try to avoid being marked as a bad quorum member when we sleep for too long in SleepBeforePhase (#3245)
* Do not sleep at the last block of the phase, it's not safe

* Refactor it a bit to make it clearer what's going on here

* Stop sleeping if blocks came faster than we expected
2019-12-31 13:01:01 +03:00
UdjinM6
630f792b5c
Fix log output in CDKGPendingMessages::PushPendingMessage (#3244) 2019-12-24 22:35:21 +03:00
Alexander Block
dc656e3236
Bump version to 0.16 on develop (#3239)
* Bump version to 0.16

* Run gen-manpages.sh

* Bump versions in gitian descriptors
2019-12-13 18:52:52 +01:00
Alexander Block
c87e825d6f
Tolerate parent cache with empty cache-artifact directory (#3240) 2019-12-13 18:40:11 +01:00
UdjinM6
0c9c27c6fd Add ccache to gitian packages lists (#3237) 2019-12-12 11:47:04 +01:00
UdjinM6
65206833e4 Fix menu bar text color in Dark theme (#3236) 2019-12-12 11:46:54 +01:00
UdjinM6
7331d4edda Bump wait_for_chainlocked_block_all_nodes timeout in llmq-is-retroactive.py to 30 sec when mining lots of blocks at once (#3238) 2019-12-12 11:46:31 +01:00
UdjinM6
dad102669b Update static and dns seeds for mainnet and testnet (#3234)
* Drop (test.)dnsseed.masternode.io

* makeseeds.py

mainnet 1185193, testnet 225964

* generate-seeds.py

* Update tor.md with live onion nodes

All old nodes are down
2019-12-11 12:30:38 +01:00
Alexander Block
f0549c4408
Merge pull request #3231 from UdjinM6/mergemaster_0.14.0.5
Merge master 0.14.0.4/5 back into develop
2019-12-11 12:29:12 +01:00
Alexander Block
9378c271b6 Modify makesseeds.py to work with "protx list valid 1" instead of "masternode list (#3235)
* Modify makesseeds.py to work with "protx list valid 1" instead of "masternode list"

This allows better filtering for MN owners with multiple MNs. This commit
also removes some unsupported fields, e.g. "protocol", "lastseen", ...

* Update contrib/seeds/README.md with new instructions
2019-12-10 18:18:44 +03:00
UdjinM6
097491a9a8 Merge branch 'master' into mergemaster_0.14.0.5 2019-12-08 03:16:19 +03:00
Alexander Block
2ae1ce4800
[v0.14.0.x] Update release notes with notable changes and changelog (#3229)
* Update release notes with notable changes and changelog

* Add #3230 to changelog
2019-12-07 16:55:51 +01:00
UdjinM6
20d4a27778
[v0.14.0.x] Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts (#3230) 2019-12-07 18:53:03 +03:00